Foros del Web » Programando para Internet » PHP »

Error en consulta php y mysql

Estas en el tema de Error en consulta php y mysql en el foro de PHP en Foros del Web. Saludos a todos. Tengo el siguiente código php: Código PHP: <?          //inicializo el criterio y recibo cualquier cadena que se desee buscar          $criterio  =  "" ;         if ( $_GET [ "criterio" ]!= "" ){ ...
  #1 (permalink)  
Antiguo 19/02/2010, 08:15
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Error en consulta php y mysql

Saludos a todos.
Tengo el siguiente código php:
Código PHP:
<?
        
//inicializo el criterio y recibo cualquier cadena que se desee buscar
        
$criterio "";
        if (
$_GET["criterio"]!=""){
    
$txt_criterio $_GET["criterio"];
    
$criterio " where co_id like '%" $txt_criterio "%' or co_nombre like '%" $txt_criterio "%' or comprador1 '%" $txt_criterio "%'";
}


    
$sql="SELECT * FROM tpv.comercios ".$criterio;
    
$res=mysql_query($sql);
    
$numeroRegistros=mysql_num_rows($res);
    if(
$numeroRegistros<=0)
    {
Esto es un buscador con paginación incluída, solamente he puesto la parte del código donde se genera el error. Bueno pondré el código completo, el cual he descargado de la red y funciona perfectamente bien, solamente ha dejado de hacerlo cuando he cambiado por los datos mios.
No se a que se debe esto, aquí va el resto del código:
Código PHP:
echo "<div align='center'>";
        echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
        echo "</div>";
    }else{
        //////////elementos para el orden
        if(!isset($orden))
        {
            $orden="co_id";
        }
        //////////fin elementos de orden

        //////////calculo de elementos necesarios para paginacion
        //tamaño de la pagina
        $tamPag=5;

        //pagina actual si no esta definida y limites
        if(!isset($pagina))
        {
               $pagina=1;
               $inicio=1;
               $final=$tamPag;
        }
        //calculo del limite inferior
        $limitInf=($pagina-1)*$tamPag;

        //calculo del numero de paginas
        $numPags=ceil($numeroRegistros/$tamPag);
        if(!isset($pagina))
        {
               $pagina=1;
               $inicio=1;
               $final=$tamPag;
        }else{
            $seccionActual=intval(($pagina-1)/$tamPag);
            $inicio=($seccionActual*$tamPag)+1;

            if($pagina<$numPags)
            {
               $final=$inicio+$tamPag-1;
            }else{
                $final=$numPags;
            }
                
                if ($final>$numPags){
                     $final=$numPags;
            }
        }

        //////////fin de dicho calculo

        //////////creacion de la consulta con limites
        $sql="SELECT * FROM tpv.comercios ".$criterio." ORDER BY ".$orden.",co_id ASC LIMIT ".$limitInf.",".$tamPag;
        $res=mysql_query($sql);

        //////////fin consulta con limites
        echo "<div align='center'>";
        echo "<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
        echo "ordenados por <b>".$orden."</b>";
                if(isset($txt_criterio)){
        echo "<br>Valor filtro: <b>".$txt_criterio."</b>";
                }
        echo "</font></div>";
        echo "<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>";
        echo "<tr><td colspan='3'><hr noshade></td></tr>";
        echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_id&criterio=".$txt_criterio."'>Código</a></th>";
        echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_nombre&criterio=".$txt_criterio."'>Nombre</a></th>";
        echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=comprador1&criterio=".$txt_criterio."'>Comprador1</a></th>";
        while($registro=mysql_fetch_array($res))
        {
?>
<!-- tabla de resultados -->
  <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];" onClick="javascript:muestra('<? echo "[".$registro["co_id"]."] ".$registro["co_nombre"]." - ".$registro["comprador1"]; ?>');">
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_id"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_nombre"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["comprador1"]; ?></b></font></td>
  </tr>
<!-- fin tabla resultados -->
<?
        
}//fin while
        
echo "</table>";
    }
//fin if
    //////////a partir de aqui viene la paginacion
?>
    <br>
    <table border="0" cellspacing="0" cellpadding="0" align="center">
    <tr><td align="center" valign="top">
<?
    
if($pagina>1)
    {
        echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
        echo 
"<font face='verdana' size='-2'>anterior</font>";
        echo 
"</a>&nbsp;";
    }

    for(
$i=$inicio;$i<=$final;$i++)
    {
        if(
$i==$pagina)
        {
            echo 
"<font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
        }else{
            echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>";
            echo 
"<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
        }
    }
    if(
$pagina<$numPags)
    {
        echo 
"&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
        echo 
"<font face='verdana' size='-2'>siguiente</font></a>";
    }
    
//////////fin de la paginacion
?>
    </td></tr>
    </table>
<hr noshade style="color:CC6666;height:1px">
<div align="center"><font face="verdana" size="-2"><a class="p" href="index.php">::Inicio::</a></font></div>

<form action="busqueda.php" method="get">
Criterio de búsqueda:
<input type="text" name="criterio" size="22" maxlength="150">
<input type="submit" value="Buscar">
</form>

</body>
</html>
<?php
    mysql_close
();
?>
El caso es que se muestran los resultados de la consulta en cuando cargo la página de búsqueda.php en el navegador, pero cuando escribo algún criterio de búsqueda en el formulario me sale el siguiente error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\buscador1\busqueda.php on line 75
Esa línea es donde se encuentra la siguiente sentencia: $numeroRegistros=mysql_num_rows($res);
Estoy cansado de buscar sobre este error en la web y nada, pero es increíble que funcionaba con los datos originales y con los mios no, incluso deje el mismo nombre de la base de datos y de la tabla, da la casualidad que son los mismos tipos de datos, todos son varchar, lo que por supuesto con diferentes longitudes, todos los campos tienen nombres en minísculas. He agotado todas las posibilidades antes de acudir al foro a postear este tema, pero nada no aparece la solución.
Por supuesto que obviado la parte de la conexión a la base de datos, que creo que ni sea necesario.
Muchas Gracias.
Disculpen la molestia.
  #2 (permalink)  
Antiguo 19/02/2010, 08:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Error en consulta php y mysql

nose si este sera el problema pero en $criterio te falta un like
  #3 (permalink)  
Antiguo 19/02/2010, 08:39
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error en consulta php y mysql

Hermano un millón de gracias por tu pronta respuesta, pues si probé la sugerencia que me diste y funciona la búsqueda.
Te reitero de nuevo las gracias, no sdabes el dolor de cabeza que me has quitado, pues ya no sabía que realmente hacer.
Mil gracias.

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:36.