• Miércoles 20 de Noviembre de 2024, 18:26

Autor Tema:  Problema Con Consulta  (Leído 2301 veces)

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Problema Con Consulta
« en: Martes 26 de Junio de 2007, 15:19 »
0
Hola tengo la siguiente consulta:

Código: Text
  1.  
  2.       $id_usuario[$i]=$fila['id_usuario'];
  3.       echo $id_usuario[$i];
  4.           $consulta_usuarios="select nombre from usuario_blog where id=".$id_usuarios[$i];
  5.  
  6.       $consulta_usu=mysql_query($consulta_usuarios,$conexion);
  7.       if(mysql_num_rows($consulta_usu)!=NULL)//sacamos los nombres de los usuarios
  8.       {
  9.         while($fila3=mysql_fetch_array($consulta_usu))
  10.         {
  11.           $nombre_usuario[$k]=$fila3['nombre'];
  12.           echo $nombre_usuario[$k];
  13.           $k++;
  14.         }
  15.       }
  16.       $i++;
  17.  

No me printa ningún echo, ¿Alquien encuentra el error?
Muchas gracias
Saludos  :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Problema Con Consulta
« Respuesta #1 en: Martes 26 de Junio de 2007, 17:57 »
0
Pues creo que debería ser así para poder asociar con respecto al nombre, de lo contrario debes usar la posicion

Código: Text
  1.  
  2. $fila3=mysql_fetch_array($consulta_usu, MYSQL_ASSOC)
  3.  
  4.  
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Problema Con Consulta
« Respuesta #2 en: Martes 26 de Junio de 2007, 18:08 »
0
Prueba lo siguiente:

Código: Text
  1.  
  2. $id_usuario[$i]=$fila['id_usuario'];
  3.       echo $id_usuario[$i];
  4.           $consulta_usuarios="select nombre from usuario_blog where id=".$id_usuarios[$i];
  5.  
  6.       $consulta_usu=mysql_query($consulta_usuarios,$conexion);
  7.      
  8.         while($fila3=mysql_fetch_assoc($consulta_usu))
  9.         {
  10.           echo $fila3['nombre'];
  11.           $k++;
  12.         }
  13.      
  14.       $i++;
  15.  
  16.  

Te comento las líneas que te corregí:

Citar
if(mysql_num_rows($consulta_usu)
No es necesario que chequees la cantidad de resultados si es que los obtienes con un while, ya que si no hay datos, no entrará en el bucle.


Citar
$nombre_usuario[$k]=$fila3['nombre'];
echo $nombre_usuario[$k];
No se de dónde sacas $k, así que obvie esa parte, ya que para la fracción de código que pusiste, no es necesario asignar el valor a un array, para solo mostrarlo.

Si lo que quieres es llenar un array con todos los nombres de los usuarios, usa directamente:
Citar
$nombre_usuario[]=$fila3['nombre'];


Citar
mysql_fetch_array
El uso de esta función es bastante inútil, a no ser casos muy especiales. El problema en realidad está en que el nombre siempre presta a confusión. Esta función, genera un array con índices numéricos y también, con las columnas de mysql como índices, por lo cual obtienes una mezcla. Por ejemplo:
  • = tito
[nombre] = tito
[1] = 28
[edad] = 28

Por lo cual obtienes los datos duplicados (puedes verlo con print_r() ), y en casos de gran uso de datos, puede causar problemas en el uso de la memoria.
mysql_fetch_assoc, por otro lado, devuelve un array cuyos keys (o claves), son los nombres de las columnas devueltas por mysql.



Saludos.
Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Problema Con Consulta
« Respuesta #3 en: Martes 26 de Junio de 2007, 18:19 »
0
Pues creo que no es posible hacer esa asignacion, se necesita una posicion.

Citar
Si lo que quieres es llenar un array con todos los nombres de los usuarios, usa directamente:

QUOTE
$nombre_usuario[]=$fila3['nombre'];

Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Problema Con Consulta
« Respuesta #4 en: Martes 26 de Junio de 2007, 19:26 »
0
Sí se puede, siempre y cuando la variable sea un array.

Por ejemplo:

Código: Text
  1.  
  2. $lista = array();
  3. for($d=0, $d<20; $d++){
  4.     $lista[]=$d;
  5. }
  6.  
  7.  

Generará un array de 20 posiciones, con los números de 0 a 19.
Lo que hace php es autoincrementar el puntero interno del array, eso como hacer un "push". Obviamente no sirve si utilizas el array como una Tabla de Hash, o mejor dicho, si sirve, pero empieza colocando desde el índice 0.


Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #5 en: Miércoles 27 de Junio de 2007, 10:02 »
0
Hola, lo primero muchas gracias  y lo segundo es que he probado el código y me aparece éste error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\nueva carpeta\blog\plantilla_visualizar.php on line 65

El echo me lo printa bien. Muchas gracias otra vez y saludos!!!!  :hola:

Ah!! se me olvidó ponerlo en el otro post:

$k=0;
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #6 en: Miércoles 27 de Junio de 2007, 10:53 »
0
Cita de: "Altareum"
Sí se puede, siempre y cuando la variable sea un array.

Pues tambien funciona aunque no lo inicialices como arreglo (al menos en php 5 ) :ph34r: .....



Código: Text
  1.  
  2. $id_usuario[$i]=$fila['id_usuario'];
  3.      echo $id_usuario[$i];
  4.          $consulta_usuarios="select nombre from usuario_blog where id=".$id_usuarios[$i];
  5.  
  6.      $consulta_usu=mysql_query($consulta_usuarios,$conexion);
  7.      
  8.        while($fila3=mysql_fetch_assoc($consulta_usu))
  9.        {
  10.          echo $fila3['nombre'];
  11.          $k++;
  12.        }
  13.      
  14.      $i++;
  15.  



Pues $consulta_usu no te esta devolviendo un resultado valido puede ser que esta fallando la instruccion sql o hay algun error en en la bd


puedes comprobar cual es el error asi:

Código: Text
  1.  
  2. $id_usuario[$i]=$fila['id_usuario'];
  3.      echo $id_usuario[$i];
  4.      $consulta_usuarios="select nombre from usuario_blog where id=".$id_usuarios[$i];
  5.  
  6.      $consulta_usu=mysql_query($consulta_usuarios,$conexion);
  7.      
  8.   if ($consulta_usu)
  9.     {
  10.           while($fila3=mysql_fetch_assoc($consulta_usu))
  11.             {
  12.                     echo $fila3['nombre'];
  13.                     $k++;
  14.             }
  15.    }
  16. else
  17.   {
  18.      echo "<h2>".mysql_error()."</h2>";
  19.   }
  20.      
  21.      $i++;
  22.  

eso con el fin de devolver el error si es que ocurre, pero te recomiendo no dejes el mensaje solo usalo para 'depurar' porque puede mostrar nombres de tablas, campos etc.... (y no seria muy bueno que alguien se entere de como se llaman las tablas o los campos o saber los tipos de datos etc..)

tambien puedes tomar la instruccion SQL y probarla directamente en la bd a ver que error te arroja :P


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

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #7 en: Miércoles 27 de Junio de 2007, 11:57 »
0
hola F_Tanori:

Muchas gracias por la recomendación lo tendré en cuenta para la próxima vez :P .
Lo primero he probado el código que me has puesto y ni me printa el error ni el echo del campo nombre, el echo de la id_usuario lo hace correctamente.
He realizado la consulta en Mysql y lo hace perfecto. ¿qué es lo que hago mal?:wacko:

Muchas gracias!!!! :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #8 en: Miércoles 27 de Junio de 2007, 12:14 »
0
He acotado un poco el problema:

Código: Text
  1. $id_usuario[$i]=$fila['id_usuario'];
  2. echo $id_usuario[$i]. "<br>";
  3. $consulta_usuarios="select nombre from usuario_blog where id=".$id_usuario[$i];
  4. echo $consulta_usuarios."<br>";
  5. $consulta_usu=mysql_query($consulta_usuarios,$conexion);
  6.      
  7.  if ($consulta_usu)
  8.    {
  9.    
  10.          while($fila3=mysql_fetch_assoc($consulta_usu))
  11.            {
  12.               $nombre_usuario[$k]=$fila3['nombre'];
  13.                    echo $nombre_usuario[$k];
  14.                    $k++;
  15.            }
  16.   }  
  17.     $i++;
  18.  

El problema empieza en la linea de $consulta_usu=mysql_query($consulta_usuarios,$conexion); puesto que los dos echo anteriores los printa correctamente.
¿Podeía ayudarme? Mil gracias!!!! :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #9 en: Miércoles 27 de Junio de 2007, 12:47 »
0
Cita de: "zaida20"
hola F_Tanori:

Muchas gracias por la recomendación lo tendré en cuenta para la próxima vez :P .
Lo primero he probado el código que me has puesto y ni me printa el error ni el echo del campo nombre, el echo de la id_usuario lo hace correctamente.
He realizado la consulta en Mysql y lo hace perfecto. ¿qué es lo que hago mal?:wacko:

Muchas gracias!!!! :hola:
es el mismo solo agrege el if-else :P


Código: Text
  1. <?php
  2.  
  3. $Conexion = mysql_connect("localhost","php","pazz");
  4. mysql_select_db("base", $Conexion);
  5.  
  6. $consulta_usuarios="select nombre from alumnos_tb";
  7. $consulta_usu=mysql_query($consulta_usuarios,$Conexion);
  8.    
  9. if ($consulta_usu)
  10.   {
  11.    
  12.         while($fila3=mysql_fetch_assoc($consulta_usu))
  13.           {
  14.               echo $fila3['nombre']."<br>";
  15.           }
  16.  }
  17. else
  18.  {
  19.     //echo "<h2>".mysql_error()."</h2>";
  20.  }
  21.    
  22. ?>
  23.  
  24.  

yo he probado el codigo y me funciona  :rolleyes:

en verdad no muestra el error?  :blink:  deveria de hacerlo

puedes usar este "debug" para examinar los objetos http://dbug.ospinto.com/


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

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #10 en: Miércoles 27 de Junio de 2007, 12:50 »
0
Hola otra vez F_Tanori:

El código correcto es :

Código: Text
  1.   $id_usuario[$i]=$fila['id_usuario'];
  2.   $consulta_usuarios="select nombre from usuario_blog where id_usuario=".$id_usuario[$i];
  3.   $consulta_usu=mysql_query($consulta_usuarios,$conexion) or die(mysql_error());
  4.    if ($consulta_usu!=NULL)
  5.    {
  6.     if(mysql_num_rows($consulta_usu)!=0)
  7.     {
  8.          while($fila3=mysql_fetch_array($consulta_usu))
  9.          {
  10.              $nombre_usuario[$k]=$fila3['nombre'];
  11.                echo $nombre_usuario[$k];
  12.              $k++;
  13.          }
  14.     }
  15.    }  
  16. $i++;
  17.  

EL problemaera en el select id=, es id_usuario=.
Era la tontería más grande, muchas gracias y perdón por las molestias  :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Con Consulta
« Respuesta #11 en: Miércoles 27 de Junio de 2007, 12:54 »
0
Cita de: "F_Tanori"
Pues $consulta_usu no te esta devolviendo un resultado valido puede ser que esta fallando la instruccion sql o hay algun error en en la bd
:rolleyes:


Cita de: "zaida20"
EL problemaera en el select id=, es id_usuario=.
Era la tontería más grande, muchas gracias y perdón por las molestias

no hay problema son errores normales :P


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