Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2005, 12:49
caramon
 
Fecha de Ingreso: junio-2005
Mensajes: 16
Antigüedad: 18 años, 10 meses
Puntos: 0
¿Por qué falla?

Hola, tengo un problema y no se cómo solucionarlo, resulta que al hacer una búsqueda de todos los registros parece que funciona bien, pero cuando hago una busqueda limitada (p.ejemplo solo los que se llaman pepe) me da un error en mysql_fetch_Array, y no se por qué narices pasa esto. este es el código

Tengo una inicial que manda los datos a buscar,

Código HTML:
<head></head>
<body>
<table width="921" border="0" align="center" bgcolor="#A6BED0">
        <tr>
          <td width="30" bgcolor="#A6BED0"><input name="radio" type="radio" value="opcion1"></td>
          <td colspan="2" bgcolor="#A6BED0"><strong><font color="#FFFFFF">Mostrar todos los socios</font></strong> </td>
          <td width="343" bgcolor="#A6BED0">&nbsp;</td>
          <td width="112" rowspan="3" bgcolor="#A6BED0"><strong><font color="#FFFFFF">Ordenados por</font></strong> </td>
          <td width="102" rowspan="3" bgcolor="#A6BED0"><select name="lista2" id="lista2">
            <option>nombre</option>
            <option>Telefono</option>
            <option>id</option>
          </select></td>
          <td width="70" rowspan="3" bgcolor="#A6BED0"><input name="mostrar" type="submit" id="mostrar" value="Mostrar"></td>
          </tr>
        <tr>
          <td>&nbsp;</td>
          <td width="131">&nbsp;</td>
          <td width="103">&nbsp;</td>
          <td>&nbsp;</td>
          </tr>
        <tr>
          <td bgcolor="#A6BED0"><input name="radio" type="radio" value="opcion2"></td>
          <td bgcolor="#A6BED0"><strong><font color="#FFFFFF">Buscar socio por</font></strong> </td>
          <td bgcolor="#A6BED0"><select name="lista1" id="lista1">
            <option selected>nombre</option>
            <option>Telefono</option>
          </select> </td>
          <td bgcolor="#A6BED0"><input name="caja1" type="text" id="caja1" size="40"></td>
          </tr>
      </table>
</body> 
Y otra que procesa esos datos,
Código PHP:
<?php      
if ($radio == ""){
?>
//aqui va un script que me manda a la pagina principal
<?php
}

if (
$radio == "opcion1"){
$consulta "SELECT * FROM socios order by $lista2";
$res=mysql_query($consulta); 
$numeroRegistros=mysql_num_rows($res);
}

if (
$radio == "opcion2"){
$consulta "SELECT * FROM socios WHERE $lista1 LIKE '%".$caja1."%' order by $lista2";
$res=mysql_query($consulta); 
$numeroRegistros=mysql_num_rows($res);
echo 
mysql_error ($db);
}
if(
$numeroRegistros<=0
{
    echo 
"<div align='center'>"
    echo 
"<font face='verdana' size='-2'>No se encontraron resultados</font>"
    echo 
"</div>"
}
else{ 

    if(!isset(
$orden)) 
    { 
       
$orden=$lista2
    } 
 
    
$tamPag=10

    if(!isset(
$_GET["pagina"])) 
    { 
       
$pagina=1
       
$inicio=1
       
$final=$tamPag
    }else{ 
       
$pagina $_GET["pagina"]; 
    } 

    
$limitInf=($pagina-1)*$tamPag

    
$numPags=ceil($numeroRegistros/$tamPag); 
    
    echo 
mysql_error ($db);

    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
       } 
    } 

if (
$radio == "opcion1"){
$consulta "SELECT * FROM socios ORDER BY $lista2 ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($consulta); 

}

if (
$radio == "opcion2"){
$consulta "SELECT * FROM socios WHERE $lista1 LIKE '%".$caja1."%' order by $lista2 ASC LIMIT ".$limitInf.",".$tamPag;
echo 
mysql_error ($db);

$res=mysql_query($consulta); 

}

echo 
"<table border = '1'> \n"
echo 
"<tr><td>Nombre</td><td>Mostrar datos</td></tr> \n";


while(
$registro=mysql_fetch_array($res))

echo 
"<tr><td>".$registro["nombre"]."</td>
      <td>"
.$registro["idsocio"]."</td></tr> \n";  
  }
  echo 
"</table> \n"

echo 
mysql_error ($db);

?>
Me da dos errores, uno de division by zero y otro de Warning: mysql_fetch_array(): supplied argument is not a valid.

A ver si alguien puede echarme una mano porque me estoy volviendo loco He repasado una y otra vez el código, y no se por qué me da porque utilizando la paginación para otras consultas no me da ese error.

Última edición por caramon; 07/12/2005 a las 15:31