• Jueves 18 de Abril de 2024, 18:35

Autor Tema:  (mysql_fetch_array) no me muestra los resultados :s  (Leído 2401 veces)

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
(mysql_fetch_array) no me muestra los resultados :s
« en: Sábado 16 de Enero de 2010, 06:45 »
0
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
  1. <?php
  2. @$conn_db=mysql_pconnect("localhost","root","");
  3.  
  4.     if (!$conn_db) { echo "no se encontro la Base de datos intenta mas tarde"; }
  5.  
  6.         $db = mysql_select_db("discos");
  7. if ($db)
  8. {
  9. echo "si";
  10. } else {
  11. echo "no";
  12. }
  13.        
  14.             if (isset($_POST['combo']))
  15.         {
  16.              if ($_POST['combo'] == '1') {
  17.               $combo="autores.nombre_autor";
  18.              } elseif ($_POST['combo'] == '2') {
  19.               $combo="discos.titulo_disco";
  20.              } elseif ($_POST['combo'] == '3') {
  21.               $combo="compania.nombre_compania";
  22.              }
  23.         }
  24.         // en este if se busco la variable para que busque por la tabla que indique el combo
  25.  
  26. $text=$_POST['text'];
  27.  
  28.                 $sql = "SELECT autores.nombre_autor, discos.titulo_disco, compania.nombre_compania FROM
  29.                 autores, discos, compania
  30.                 WHERE autores.id_autores = discos.id_autor
  31.                 AND compania.id_compania = discos.id_compania
  32.                 AND ".$combo." like '%".$text."%'";
  33. //echo $sql;
  34.  
  35. if ($num_result == " ")
  36. {
  37. echo "0";
  38. } else {
  39. echo"1";
  40. }
  41. ?>
  42.  
  43. <html>
  44. <head>
  45.  
  46. <title>resultados</title>
  47. </head>
  48.  
  49. <body bgcolor="#CCCCCC">
  50. <p align="center"><h3 align="center">Resultado de tu busqueda</h3></p><br>
  51.  
  52.  
  53. <?php
  54. $query = mysql_query($sql);
  55. $mum_result = mysql_num_rows($query);
  56.  
  57. if ($num_result)
  58. {
  59. echo "Tu consulta recupero ".$num_result." resultados";
  60. } else {
  61. echo "No hay resultados para mostrar, no existe en la base de datos lo que buscas <br>";
  62. echo "<a href='inicio.php'> Busca otra vez </a>";
  63. }
  64. ?>
  65. <br>
  66. <table width="100%"  border="1" cellspacing="0" cellpadding="0">
  67.   <tr>
  68.     <td>Imagen del disco</td>
  69.     <td>Autor</td>
  70.     <td>Titulo del Disco</td>
  71.     <td>Compania</td>
  72.   </tr>
  73.   <tr>
  74. <?php
  75. for ($i=0; $i<$num_result; $i++)
  76. {
  77. $valor=mysql_fetch_array($query);
  78.     echo "<td> a </td>";
  79.     echo "<td>".$valor["nombre_autor"]."</td>";
  80.     echo "<td>".$valor["titulo_disco"]."</td>";
  81.     echo "<td>".$valor["nombre_compania"]."</td>";
  82. echo "</tr>";
  83. } // cierra el bucle for
  84. ?>
  85. </table>
  86.  
  87. </body>
  88. </html>
  89.  

saludos gente .

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: (mysql_fetch_array) no me muestra los resultados :s
« Respuesta #1 en: Martes 16 de Marzo de 2010, 20:23 »
0
éste codigo de tus lineas 74 a 84:
Código: PHP
  1.  
  2. <?php
  3. for ($i=0; $i<$num_result; $i++)
  4. {
  5. $valor=mysql_fetch_array($query);
  6.     echo "<td> a </td>";
  7.     echo "<td>".$valor["nombre_autor"]."</td>";
  8.     echo "<td>".$valor["titulo_disco"]."</td>";
  9.     echo "<td>".$valor["nombre_compania"]."</td>";
  10. echo "</tr>";
  11. } // cierra el bucle for
  12. ?>
  13.  
  14.  
prueba cambiandolo de ésta manera:
Código: PHP
  1.  
  2. <?php
  3. for ($i=0; $i<$num_result; $i++)
  4. {
  5. $valor=mysql_fetch_array($query);
  6.     echo "<td> a </td>";
  7.     echo "<td>".$valor[0]."</td>";
  8.     echo "<td>".$valor[1]."</td>";
  9.     echo "<td>".$valor[2]."</td>";
  10. echo "</tr>";
  11. } // cierra el bucle for
  12. ?>
  13.  
  14.  
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

locazopro

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: (mysql_fetch_array) no me muestra los resultados :s
« Respuesta #2 en: Miércoles 17 de Marzo de 2010, 03:19 »
0
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
  1.  
  2. while ($valor = mysql_fetch_array($query, MYSQL_ASSOC)) {
  3.     echo "<td> a </td>";
  4.     echo "<td>".$valor['nombre_autor']."</td>";
  5.     echo "<td>".$valor['titulo_disco']."</td>";
  6.     echo "<td>".$valor['nombre_compania']."</td>";
  7. echo "</tr>";
  8. }
  9.  
  10.  

espero te sirva.

Saludos!

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: (mysql_fetch_array) no me muestra los resultados :s
« Respuesta #3 en: Miércoles 17 de Marzo de 2010, 04:51 »
0
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.
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: (mysql_fetch_array) no me muestra los resultados :s
« Respuesta #4 en: Jueves 18 de Marzo de 2010, 14:11 »
0
Tienes un error en la Linea 55

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

Linea 57
Citar
if ($num_result )

Linea 75
Citar
for  ($i=0; $i<$num_result ; $i++)


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
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================