Programación Web y Scripting > PHP

 (mysql_fetch_array) no me muestra los resultados :s

(1/1)

cesand:
hola gente hace unos dias que noe podido entrar al foro saludos a todos,

necesito de sus vistas en un codigo sensillo mio  :D  el tema es que no me muestra los resultados en la tabla dinAMICA QUE ARME... les cuente el sql funciona perfecto lo probe en phpmyamin

espero me puedan dar una ayudita este es el codigo


--- Código: PHP ---<?php@$conn_db=mysql_pconnect("localhost","root","");     if (!$conn_db) { echo "no se encontro la Base de datos intenta mas tarde"; }         $db = mysql_select_db("discos");if ($db){echo "si";} else {echo "no";}                    if (isset($_POST['combo']))        {             if ($_POST['combo'] == '1') {              $combo="autores.nombre_autor";              } elseif ($_POST['combo'] == '2') {              $combo="discos.titulo_disco";             } elseif ($_POST['combo'] == '3') {              $combo="compania.nombre_compania";             }        }        // en este if se busco la variable para que busque por la tabla que indique el combo $text=$_POST['text'];                 $sql = "SELECT autores.nombre_autor, discos.titulo_disco, compania.nombre_compania FROM                 autores, discos, compania                WHERE autores.id_autores = discos.id_autor                 AND compania.id_compania = discos.id_compania                AND ".$combo." like '%".$text."%'";//echo $sql; if ($num_result == " "){echo "0";} else {echo"1";}?> <html><head> <title>resultados</title></head> <body bgcolor="#CCCCCC"><p align="center"><h3 align="center">Resultado de tu busqueda</h3></p><br>  <?php$query = mysql_query($sql);$mum_result = mysql_num_rows($query); if ($num_result){echo "Tu consulta recupero ".$num_result." resultados";} else {echo "No hay resultados para mostrar, no existe en la base de datos lo que buscas <br>";echo "<a href='inicio.php'> Busca otra vez </a>";}?><br><table width="100%"  border="1" cellspacing="0" cellpadding="0">  <tr>    <td>Imagen del disco</td>    <td>Autor</td>    <td>Titulo del Disco</td>    <td>Compania</td>  </tr>  <tr><?php for ($i=0; $i<$num_result; $i++){$valor=mysql_fetch_array($query);    echo "<td> a </td>";    echo "<td>".$valor["nombre_autor"]."</td>";    echo "<td>".$valor["titulo_disco"]."</td>";    echo "<td>".$valor["nombre_compania"]."</td>";echo "</tr>";} // cierra el bucle for ?></table> </body></html> 
saludos gente .

jodijo5:
éste codigo de tus lineas 74 a 84:

--- Código: PHP --- <?phpfor ($i=0; $i<$num_result; $i++){$valor=mysql_fetch_array($query);    echo "<td> a </td>";    echo "<td>".$valor["nombre_autor"]."</td>";    echo "<td>".$valor["titulo_disco"]."</td>";    echo "<td>".$valor["nombre_compania"]."</td>";echo "</tr>";} // cierra el bucle for?>  prueba cambiandolo de ésta manera:

--- Código: PHP --- <?phpfor ($i=0; $i<$num_result; $i++){$valor=mysql_fetch_array($query);    echo "<td> a </td>";    echo "<td>".$valor[0]."</td>";    echo "<td>".$valor[1]."</td>";    echo "<td>".$valor[2]."</td>";echo "</tr>";} // cierra el bucle for?>  

locazopro:
amigo, lo estas haciendo mal. Te comento, en ese código estarías realizando el fetch_array por cada resultado, cuando lo que tienes que hacer es devolverlo una sola vez, ya que el fetch_array te trae un array con TODOS los resultados, la forma estándar de hacerlo sería la siguiente:


--- Código: PHP --- while ($valor = mysql_fetch_array($query, MYSQL_ASSOC)) {    echo "<td> a </td>";    echo "<td>".$valor['nombre_autor']."</td>";    echo "<td>".$valor['titulo_disco']."</td>";    echo "<td>".$valor['nombre_compania']."</td>";echo "</tr>";}  
espero te sirva.

Saludos!

jodijo5:
locazopro, en el codigo de cesand veo una estructura repetitiva, y en cada iteracion hace un llamado a mysql_fetch_array, y de esa manera se recorren la filas correctamente, en mi codigo tambien y en el tuyo tambien, solo que en el tuyo de una manera diferente pero que a fin de cuentas ambos codigos hacen lo mismo. recorren los resultados fila por fila, el problema radica en coger los resultados y no en recorrer las filas.

F_Tanori:
Tienes un error en la Linea 55

La variable qe utilizas es :
$mum_result = mysql_num_rows($query);

Linea 57

--- Citar ---if ($num_result )
--- Fin de la cita ---

Linea 75

--- Citar --- for  ($i=0; $i<$num_result ; $i++)
--- Fin de la cita ---


Por eso no entra al if ni ejecuta el for correctamente.

PD. Te recomiendo usar el While como te han dicho para recorrer un resultset es mas efectivo


Saludos

Navegación

[0] Índice de Mensajes

Ir a la versión completa