Foros del Web » Programando para Internet » PHP »

Problema en un bucle al listar los campos de una BDD

Estas en el tema de Problema en un bucle al listar los campos de una BDD en el foro de PHP en Foros del Web. Holas! Hace mucho que no me pasaba por aquí, pero por motivos personales y laborales he estado muy ausente en cuanto a la programación y ...
  #1 (permalink)  
Antiguo 20/02/2004, 08:30
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Problema en un bucle al listar los campos de una BDD

Holas!

Hace mucho que no me pasaba por aquí, pero por motivos personales y laborales he estado muy ausente en cuanto a la programación y al PHP se refieren.

Me he vuelto a poner con una página, pero tengo un problemilla un tanto raro.


Tengo una Base de Datos, con una tabla llamada "Noticias" con los siguientes campos:

ID - integer
Titulo - Varchar(100)
Texto - longtext

y un .php que muestra las noticias:
Código PHP:
$query "SELECT * FROM noticias WHERE ID < 16 order by ID desc"

$idquerymysql_query ($query);    

$Num_Regmysql_num_rows($idquery);

for (
$i=0;$i<$Num_Reg; ++$i){

     
$row=mysql_fetch_array($idquery);

     
$ID_Noticia=$row[0];

     echo(
"Titulo: ".$row[1]."<br>");
     echo(
"Cuerpo: ".$row[2]."<br>");
     echo(
"ID".$ID_Noticia."<br>");

Cuando lo ejecuto me muestra primero el ID, luego el Titulo y después el cuerpo, así en todas las iteraciones del bucle.

Hacía mucho que no me ponía ocn PHP y temo que haya cometido algún error tonto que no sea capaz de ver.

Por otra parte, ¿influye en algo el orden en el que estén los campos en la Base de Datos? o quizás haya hecho algo mal al crear la Base de Datos...

En fin que ya no sé que puede ser, si alguien me pude echar un cablecito estaría muy agradecido.

Saludos!!!
  #2 (permalink)  
Antiguo 20/02/2004, 08:42
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Si usas los indices numericos, el orden de los campos es el de la consulta. Como has usado *, el orden es el de la base de datos.

Es mejor usar el nombre del campo como indice del array:
Código PHP:
$ID_Noticia=$row['ID']; 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 20/02/2004, 08:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Muchas gracias por responder tan rápido y por el consejo, josemi.

He cambiado los números por los nombres de los campos así:

Código PHP:
$query "SELECT * FROM noticias WHERE ID < 16 order by ID desc"

$idquerymysql_query ($query);    

$Num_Regmysql_num_rows($idquery);

for (
$i=0;$i<$Num_Reg; ++$i){

     
$row=mysql_fetch_array($idquery);

     
$ID_Noticia=$row['ID'];

    
     echo(
"Titulo: ".$row['Titulo']."<br>");
     echo(
"Cuerpo: ".$row['Texto']."<br>");
     echo(
"ID".$ID_Noticia."<br>");

No obstante el resultado es el mismo:

Primero me muestra el ID, depués el Titulo y pot último el Cuerpo, es decir el bucle lo empieza por la última instrucción.

A mi me parece muy raro, nunca había visto nada parecido. La web la tengo en miarroba.com, por si puede influir en algo la configuración PHP que tengan.

Creo que tiene que ser algo de la Base de Datos, o de la consulta, pero no consigo averiguar que es.
  #4 (permalink)  
Antiguo 20/02/2004, 09:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
¿Pero te muestra tambien en mal orden el texto junto al campo?

Es decir,

ID: 123
Cuerpo: adfasfasf
Titulo: asdsd

Si es asi, puede que sea un problema del HTML donde muestras esos mensajes.

Si los textos te los muestra bien, comprueba en la base de datos (con phpmyadmin u otra forma) que metiste los valores en el campo correcto.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/02/2004, 09:22
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Pues sí, parece ser que es algo de problema de la página en la que está, pero es algo que no entiendo.

En el .php sólo está el código, que lo llama otra pagína con un "require" dentro de una celda de una tabla.

Supongo que será algún fallo en la estructura HTML, sin embargo, lo que no entiendo es porqué ese fallo hace que se muestre primero la última intrucción.

Pero vamos, que ejecutando el .php sólo funciona bien.

Ainsss, entre el PHP y las tablas me van a matar!!!

en fin, gracias por la ayuda, si no lo consigo resolver volveré a dar guerra jeje

Saludos.!

Última edición por Keysher; 20/02/2004 a las 09:24
  #6 (permalink)  
Antiguo 20/02/2004, 09:55
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
ummmm, Interesante, es posible que el problema esté en el contenido del campo "Texto" de la Base de datos.....

Puede quee haya habido algún problema con código HTML metido en ese campo....

A ver si sigo haciendo pruebas y lo consigo solventar.
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 21:26.