Foros del Web » Programando para Internet » PHP »

Problema con mysql_query y Array

Estas en el tema de Problema con mysql_query y Array en el foro de PHP en Foros del Web. Wenas, estoy intentando aprender PHP y MySQL, haciendo un pequeño CMS. El problema lo tengo al mostrar los contenidos, organizados en categorias (multiples categorias a ...
  #1 (permalink)  
Antiguo 09/09/2006, 16:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 18 años, 2 meses
Puntos: 0
Problema con mysql_query y Array

Wenas, estoy intentando aprender PHP y MySQL, haciendo un pequeño CMS.

El problema lo tengo al mostrar los contenidos, organizados en categorias (multiples categorias a la vez). El array que almacena los resultados del $query, solo me devuelve un resultado...

El código es así:

$query = "SELECT cat_id FROM cat2post WHERE post_id='$id'";
$result2 = mysql_query ($query);

for ($f=0; $f<3; $f++){

$cat_id_array = mysql_fetch_array($result2);
$cat_id = $cat_id_array[$f];
......

$cat_id solo tiene valor en la primera iteracción del for, y lo debería tener en 3 ocasiones...

¿Cual puede ser el problema? Agradecería cualquier ayuda, pues estoy completamente bloqueado.
Gracias
  #2 (permalink)  
Antiguo 09/09/2006, 17:12
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 18 años, 3 meses
Puntos: 0
¿Estás seguro de que debería de haber 3 filas en el resultado? Es que parece que el código está bien. Para mí que sólo hay una fila resultado. Puedes comprobar esto insertando esta instrucción antes del bucle for:

echo "Hay ".mysql_num_rows($result2)." filas en el resultado ";

Si sale 1 es que todo está bien. Si de verdad son tres no veo donde tienes el fallo.
  #3 (permalink)  
Antiguo 10/09/2006, 07:47
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 18 años, 2 meses
Puntos: 0
Gracias GikaJavi. Si que había 3 registros por consulta.

He intentado reescribir el código por completo y se ha solucionado, pero no tengo muy claro porqué o cual era el fallo. Este fue el resultado por si a alguien le sirve:

$query = "SELECT category_id FROM post2cat WHERE post_id='$id'";
$result = mysql_query ($query);

while ($cat_id_array = mysql_fetch_array($result)){
$cat_id = $cat_id_array ["category_id"];

$query = "SELECT cat_name FROM categories WHERE cat_ID='$cat_id'";
$result2 = mysql_query($query);

$cat_name_array = mysql_fetch_array($result2);
$cat_name_temp = $cat_name_array[0];
$cat_name = $cat_name." ".$cat_name_temp;
}
  #4 (permalink)  
Antiguo 11/09/2006, 08:37
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Cita:
Iniciado por naikon101 Ver Mensaje
Código PHP:
$query "SELECT cat_id FROM cat2post WHERE post_id='$id'";
    
$result2 mysql_query ($query);

    for (
$f=0$f<3$f++){

        
$cat_id_array mysql_fetch_array($result2);
        
$cat_id $cat_id_array[$f];
        ...... 
¿Cual puede ser el problema? Agradecería cualquier ayuda, pues estoy completamente bloqueado.
Gracias
Cita:
Iniciado por naikon101 Ver Mensaje
He intentado reescribir el código por completo y se ha solucionado, pero no tengo muy claro porqué o cual era el fallo. Este fue el resultado por si a alguien le sirve:

Código PHP:
$query "SELECT category_id FROM post2cat WHERE post_id='$id'";
$result mysql_query ($query);

while (
$cat_id_array mysql_fetch_array($result)){

    
$cat_id $cat_id_array ["category_id"];

    
$query "SELECT cat_name FROM categories WHERE cat_ID='$cat_id'";
    
$result2 mysql_query($query);

    
$cat_name_array mysql_fetch_array($result2);
    
$cat_name_temp $cat_name_array[0];
    
$cat_name $cat_name." ".$cat_name_temp;


bueno para empezar si que cambiaste mucho tu código, en especial esto "SELECT cat_id FROM cat2post WHERE post_id='$id'" por esto "SELECT category_id FROM post2cat WHERE post_id='$id'", pero en fin si dices que te devolvia un valor supongo que estaba bien, sin embargo creo que tu error estaba aquí
Código PHP:
for ($f=0$f<3$f++){

        
$cat_id_array mysql_fetch_array($result2);
        
$cat_id $cat_id_array[$f];
        ...... 
el problema radica en el mysql_fetch_array() debería estar fuera del for para poder recorrer el arreglo posteriormente, ya que al ejecutar este comando se crea un arreglo con todos los resultados de tu consulta y al tenerlo dentro del for incrementara el arreglo con los mismos resultados(lo mas probable es tener inconsistencias en el resultado), por tanto te debia de quedar así
Código PHP:
$cat_id_array mysql_fetch_array($result2);
      for (
$f=0$f<3$f++){
        
$cat_id $cat_id_array[$f];
        ...... 
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
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 12:09.