Foros del Web » Programando para Internet » PHP »

problemas con mysql_fetch_array

Estas en el tema de problemas con mysql_fetch_array en el foro de PHP en Foros del Web. tengo este problema en el archivo buscar.php coloco el sgte codigo Código PHP: < form method = "post"   action = "buscar2.php" > < select name = "metode"  ...
  #1 (permalink)  
Antiguo 13/11/2006, 15:15
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
problemas con mysql_fetch_array

tengo este problema en el archivo buscar.php coloco el sgte codigo

Código PHP:
<form method="post"  action="buscar2.php">
<
select name="metode" size="1">
<
option value="row_nombre">nombre</option>
<
option value="row_apellido">apellido</option>
</
select>
<
input type="text" name="search" size="25">
<
input type="submit" value="Buscar">
</
form
y en el archivo buscar2.php coloco lo sgte

Código PHP:
<?
$hostname 
"localhost";         // Usually localhost.
$username "aaaaa";     // If you have no username, leave this space empty.
$password "eeee";         // The same applies here.
$usertable "prueba";         // This is the table you made.
$dbName "xxxxxxx";         // This is the main database you connect to.

MYSQL_CONNECT($hostname$username$password) OR DIE("Unable to connect to database");
@
mysql_select_db"$dbName") or die( "Unable to select database");
?>
<?
//error message (not found message)
$XX "No Record Found";

$result mysql_query("SELECT * FROM prueba WHERE $metode LIKE '%$search%' LIMIT 0, 30 ");
while (
$row  =  mysql_fetch_row($result))
   {
        
$nombre=$row["row_nombre"];
        
$apellido=$row["row_apellido"];
        
$dni=$row["row_dni"];

print (
"this is for $id, and this print the nombre end so on...");
   }

//below this is the function for no record!!
if (!$nombre)
{
print (
"$XX");
}
//end
?>
cuando doy click en el boton en buscar me bota el sgte error

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in buscar2.php on line 16.
Si alguien tiene la solución le agradeceria en que me haga saber, gracias.
  #2 (permalink)  
Antiguo 13/11/2006, 15:18
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Pues a simple vista todo parece estar bien te sugiero que hagas el siguiente cambio:


Código PHP:
$result mysql_query("SELECT * FROM prueba WHERE $metode LIKE '%$search%' LIMIT 0, 30 ");
//por
$result mysql_query("SELECT * FROM prueba WHERE $metode LIKE '%$search%' LIMIT 0, 30 ")or die(mysql_error());
//Para de esta forma saber cual es el error. 
Saludillos.
  #3 (permalink)  
Antiguo 13/11/2006, 15:37
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
colocando el codigo de la sgte manera si me vota los resultados
Código PHP:
<?
$hostname 
"localhost";
$username "aaaaa";
$password "eeee";
$usertable "prueba";
$dbName "xxxxxxx";

MYSQL_CONNECT($hostname$username$password) OR DIE("Unable to connect to database");
@
mysql_select_db"$dbName") or die( "Unable to select database");
?>
<?
//error message (not found message)
$XX "Ningún expediente encontrado";

$result mysql_query("SELECT * FROM prueba WHERE $metode LIKE '%$search%' LIMIT 0, 30 ")or die(mysql_error());
while (
$row  =  mysql_fetch_array($result))
   {
        
$id=$row["id"];
        
$nombre=$row["nombre"];
        
$apellido=$row["apellido"];
        
$dni=$row["dni"];

print (
"$id, $nombre, $apellido, $dni");
   }

//below this is the function for no record!!
if (!$result)
{
print (
"$XX");
}
//end
?>
pero como puedo hacer para que me vote los resultados en orden por ejemplo
algo asi

$id $nombre $apellido $dni
1 aaaa bbbbb cccc
5 aaaa ggggg mmm

si no es mucha molestia, gracias.
  #4 (permalink)  
Antiguo 13/11/2006, 15:44
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Haciendo uso de ORDER BY en tu query

Código PHP:
$result mysql_query("SELECT * FROM prueba WHERE $metode LIKE '%$search%' order BY id LIMIT 0, 30 ")or die(mysql_error());
//id sustituyelo por el campo que quieres que se ordene. 
Saludillos.
  #5 (permalink)  
Antiguo 13/11/2006, 15:50
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
creo que no me explique bien, bueno el resultado que quiero es que me muestre en una tabla osea cada campo en su columna correspondiente

Código HTML:
<table>
<tr>
<td>Id</td>
<td>Nombre</td>
<td>Apellido</td>
<td>Dni</td>
</tr>
<tr>
<td>1</td>
<td>aaaaa</td>
<td>bbbb</td>
<td>22222</td>
</tr>
</table> 
Gracias por tu ayuda.
  #6 (permalink)  
Antiguo 13/11/2006, 16:09
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Código PHP:
$result mysql_query("SELECT campo1,campo2,campo3,campo4,campo5 FROM base");
$row mysql_fetch_row($result); 
Código PHP:
<table> <tr> <td>Id</td> <td>".echo $row[0]."</td> <td>".echo $row[1]."</td> <td>".echo $row[2]."</td> </tr> <tr> <td>1</td> <td>".echo $row[3]."</td> <td>".echo $row[4]."</td> <td>".echo $row[5]."</td> </tr> </table
El orden de impresión es tomado con el mismo orden que acomodas los campos, es decir, $row[0] = campo1, $row[1]=campo2, etc.


Saludos.
__________________
Hospedaje Web al mejor costo!
  #7 (permalink)  
Antiguo 13/11/2006, 16:30
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
ok pero este codigo en que parte del codigo lo coloco

Código PHP:
<table> <tr> <td>Id</td> <td>".echo $row[0]."</td> <td>".echo $row[1]."</td> <td>".echo $row[2]."</td> </tr> <tr> <td>1</td> <td>".echo $row[3]."</td> <td>".echo $row[4]."</td> <td>".echo $row[5]."</td> </tr> </table
  #8 (permalink)  
Antiguo 13/11/2006, 16:32
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
pues en en donde quieras que vaya la tabla hehehe. ya sea en el mismo archivo que hace la conexión o en otro lógicamente si va en archivos separados debes incluir el archivo de la conexión.

Saludos
__________________
Hospedaje Web al mejor costo!
  #9 (permalink)  
Antiguo 14/11/2006, 13:41
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
sabes ahora e hecho de la sgte manera

Código PHP:
<table border="0" cellpadding="5" cellspacing="1" align="center">
<tr bgcolor="#666699" style="FONT-FAMILY: Arial, trebuchet, verdana; FONT-SIZE: 15px; FONT-WEIGHT: bold; COLOR= white">
<td colspan="4"><em>Resultado de Busqueda</em></TD>
</tr>
<tr align="center" bgcolor="#666699" style="FONT-FAMILY: verdana; FONT-SIZE: 12px; FONT-WEIGHT: normal; COLOR= white">
<td>Id</td>
<td>Nombre</td>
<td>Apellido</td>
<td>Dni</td>
</tr>

<?
$hostname 
"localhost";
$username "aaaaaaaa";
$password "eeeeeeee";
$usertable "iiiiiii";
$dbName "oooooooooo";

MYSQL_CONNECT($hostname$username$password) OR DIE("Unable to connect to database");
@
mysql_select_db"$dbName") or die( "Unable to select database");
?>

<?

$result 
mysql_query("SELECT * FROM prueba WHERE $metode LIKE '%$search%' LIMIT 0, 30 ")or die(mysql_error());
$row mysql_fetch_row($result);

$id=$row[0];
$nombre=$row[1];
$apellido=$row[2];
$dni=$row[3];

echo 
"<tr class='linkboxl' onMouseOver='high(this);' onMouseOut='low(this);' bgcolor=#FFFFFF align=center style='FONT-FAMILY: verdana; FONT-SIZE: 12px; FONT-WEIGHT: normal; COLOR= black'>";
echo 
"<td>".$id."</td>";
echo 
"<td>".$nombre."</td>";
echo 
"<td>".$apellido."</td>";
echo 
"<td>".$dni."</td>";
echo 
"</tr>";

?>
</table>
en lo que tengo problema es el sgte:
por ejemplo si busco a una persona que tenga por apellido lopez solo me muestra el primer registro que encuentra pero en mi base de datos hay 5 personas registradas con el mismo apellido
  #10 (permalink)  
Antiguo 14/11/2006, 14:30
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
con un while eso se mejora.

Código PHP:
while($fila=mysql_fetch_array($result)){
 
// aqui va tu tabla
 
$fila["id"];
$fila["nombre"]; // etc...


Saludos
__________________
Hospedaje Web al mejor costo!
  #11 (permalink)  
Antiguo 15/11/2006, 09:06
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
Gracias a todos aquellos que me pudieron ayudar, porfin me salio lo que queria. Gracias
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 04:25.