Author Topic: Error en código en $query  (Read 2017 times)

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Error en código en $query
« on: Febrero 25, 2013, 03:08:18 am »
Hola, por favor podeis echarle un vistazo a mi código que me da error. En localhost funciona bien pero al subirlo al servidor es cuando da el error:
Código:
Quote
<br /> <b>Warning</b>:  mysql_num_rows(): supplied argument is not a valid MySQL result resource in <b>C:\Inetpub\vhosts\xn--electrodiseo-khb.es\httpdocs\Wedserver\ajax.php</b> on line <b>146</b><br /> []

En la línea:

Quote
if (mysql_num_rows($query) > 0) {

ajax.php

Quote
<?php 
include("Connections/conexion.php");
if ($_POST["action"] == "listar")
{
    // valores recibidos por POST
    $vte = $_POST['telefonos'];
    $ape = $_POST['apellidos'];
    $name = $_POST['name'];
    $dni = $_POST['dni'];
    $calle = $_POST['calle'];
    $movil = $_POST['movil'];
    $loca = $_POST['localidad'];
   


   
if ( ! empty($vte)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.telefonos='$vte')
 
UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE telefonos='$vte' )
 
UNION ALL
 
(SELECT 2 as qnum,U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.telefonos='$vte')";
}
if ( ! empty($movil)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.movil='$movil')
 
UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE movil='$movil' )
 
UNION ALL
 
(SELECT 2 as qnum,U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.movil='$movil')";
}
if ( ! empty($dni)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.dni='$dni')
 
UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE dni='$dni' )
 
UNION ALL
 
(SELECT 2 as qnum,U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.dni='$dni')";
}
if ( ! empty($calle)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  B.calle like '%$calle%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE calle like '%$calle%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  D.calle like '%$calle%')";
}

if ( ! empty($ape)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.apellidos like '%$ape%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE apellidos like '%$ape%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.apellidos like '%$ape%')";
}
if ( ! empty($name)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.name like '%$name%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE name like '%$name%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.name like '%$name%')";
}
if ( ! empty($loca)) {
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  B.localidad like '%$loca%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE localidad like '%$loca%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  D.localidad like '%$loca%')";
}

    // Ordenar por
    $vorder = $_POST['orderby'];
   
    if($vorder != ''){
        $sql .= " ORDER BY ".$vorder;
    }
     
    $query = mysql_query($sql);
    if (mysql_num_rows($query) > 0) {
         
  $datos = array();
     
    while($row = mysql_fetch_array($query))
    {
          if($row["qnum"]==0) $style="";
          if($row["qnum"]==1)$style="background-color:yellow";
          if($row["qnum"]==2)$style="background-color:orange";
   
   
   
        $datos[] = array(
            'id_aviso'          => $row['id_aviso'],
            'telefonos'          => $row['telefonos'],
            'name'      => utf8_encode($row['name']),
            'apellidos'       => utf8_encode($row['apellidos']),
            'calle'       => utf8_encode($row['calle']),
            'localidad'        => utf8_encode($row['localidad']),
            'style'       =>  $style
           
           
        );
    }
    // convertimos el array de datos a formato json
    echo json_encode($datos);
/* Tienes resultados. */
    }else{
/*No tienes resultados. */
    echo '[]';
        }
}
?>

Gracias.

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Re: Error en código en $query
« Reply #1 on: Febrero 25, 2013, 04:38:39 am »
El problema parece que esta en las consultas sqls. Se podrían juntar en una sola consulta sql?

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5440
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Error en código en $query
« Reply #2 on: Febrero 25, 2013, 05:00:14 am »
Posiblemente la consulta no esté devolviendo resultados ¿Los datos en base de datos de tu localhost y de tu servidor son los mismos?

Si miras mysql_query() http://php.net/manual/es/function.mysql-query.php verás que devuelve resultado si hay resultados y false si no los hay, deberías poner un if antes de intentar tratar los resultados, pero en vez de el que pones, debería ser != false

Code: [Select]
f (mysql_num_rows($query) != false) {

Se bueno.

satjaen

  • Jr. Member
  • **
  • Posts: 99
  • Karma: 0
    • View Profile
Re: Error en código en $query
« Reply #3 on: Febrero 25, 2013, 05:25:14 am »
Posiblemente la consulta no esté devolviendo resultados ¿Los datos en base de datos de tu localhost y de tu servidor son los mismos?

Si miras mysql_query() http://php.net/manual/es/function.mysql-query.php verás que devuelve resultado si hay resultados y false si no los hay, deberías poner un if antes de intentar tratar los resultados, pero en vez de el que pones, debería ser != false

Code: [Select]
if (mysql_num_rows($query) != false) {

Se bueno.

Gracias, por seguir ayudando. Lo he puesto como me dices pero sigue igual. Si no lo resuelvo no pasa nada porque solo no funciona lo de no se han encontrado registros  si no inserto nada en ningún campo. Si inserto algún dato que siempre sera así funciona perfectamente.
Gracias y seré bueno. ;D

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5440
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Error en código en $query
« Reply #4 on: Febrero 25, 2013, 05:34:59 am »
"solo no funciona lo de no se han encontrado registros " ... pero ¿no lo habías resuelto ya?

Me confundí con lo del mysql_num_rows, lo que tienes que comparar con false es $query antes de intentar meterlo en el mysql_num_rows

Se bueno.

 

ey