Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Obtener registros e imprimirlos en loop for()

Estas en el tema de Obtener registros e imprimirlos en loop for() en el foro de PHP en Foros del Web. Hola por aca. Tengo el siguiente problema, y es que no hallo la forma de conseguir que me muestre todos los registros de la BD. ...
  #1 (permalink)  
Antiguo 19/07/2014, 03:16
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 4 meses
Puntos: 0
Obtener registros e imprimirlos en loop for()

Hola por aca. Tengo el siguiente problema, y es que no hallo la forma de conseguir que me muestre todos los registros de la BD. Esto es un slider que obtiene su contenido por medio de BD. El for() funciona perfectamente pero se repite el primer registro dos veces porque 2 son los registros que tengo, no hay mas. Pero el contenido del slider me saca el primer registro solamente, y claramente, doble.

Intente hacer mysql_fetch_array() pero la consulta y el for consumen demasiado para solamente dos registros.
Que podria hacer en este caso en el cual quiero obtener todos los datos y sacarlos en el loop sin que me consuma casi toda la memoria.

Script:

Código PHP:
Ver original
  1. $dbconnection = mysql_connect($dbhost, $dbuser, $dbpass) or trigger_error(mysql_error(),E_USER_ERROR);
  2. mysql_select_db($dbname, $dbconnection);
  3. $query_sliders = "SELECT * FROM ".$dbprefix.$dbsprt."sliders";
  4. $sliders = mysql_query($query_sliders, $dbconnection) or die(mysql_error());
  5. $row_sliders = mysql_fetch_array($sliders);
  6. $totalRows_sliders = mysql_num_rows($sliders);
  7.  
  8. mysql_select_db($dbname, $dbconnection);
  9. $query_slidersloop = "SELECT COUNT(*) 'id' FROM ".$dbprefix.$dbsprt."sliders";
  10. $slidersloop = mysql_query($query_slidersloop, $dbconnection) or die(mysql_error());
  11. $row_slidersloop = mysql_fetch_array($slidersloop);
  12. $totalRows_slidersloop = $row_slidersloop['id'];
  13.  
  14. $com_sliderdata_id          = utf8_encode($row_sliders['id']);
  15. $com_sliderdata_alias       = utf8_encode($row_sliders['alias']);
  16. $com_sliderdata_title       = utf8_encode($row_sliders['title']);
  17. $com_sliderdata_body        = utf8_encode($row_sliders['body']);
  18. $com_sliderdata_image       = utf8_encode($row_sliders['image']);
  19. $com_sliderdata_type        = utf8_encode($row_sliders['type']);
  20. $com_sliderdata_language    = utf8_encode($row_sliders['language']);
  21.  
  22. <ul class="ei-slider-large">
  23. <?php for ($i=0; $i < $totalRows_slidersloop; $i++) { ?>
  24.         <li class="<?php echo $com_sliderdata_alias; ?> slide align- image-content-type">
  25.             <?php echo $com_sliderdata_image; ?>
  26.             <div class="ei-title">
  27.                 <h2><?php echo $com_sliderdata_title; ?></h2>
  28.                 <h3><?php echo $com_sliderdata_body; ?></h3>
  29.             </div>
  30.         </li>
  31. <?php } ?>
  32. </ul>
  #2 (permalink)  
Antiguo 19/07/2014, 04:12
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Obtener registros e imprimirlos en loop for()

Asígnale los valores dentro del bucle no fuera, ya que fuera los repite, pero dentro te los cambia por cada vuelta.

Y te recomendaría usar foreach o while en vez de for, ya que si por un casual el "indice" no corresponde con el elemento de la tabla no te dará error.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #3 (permalink)  
Antiguo 19/07/2014, 07:42
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Obtener registros e imprimirlos en loop for()

A que valores te refieres? A las de las variables?

Última edición por eccorposse; 19/07/2014 a las 08:27
  #4 (permalink)  
Antiguo 19/07/2014, 08:29
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Obtener registros e imprimirlos en loop for()

deberias hacer algo asi:

Código PHP:
Ver original
  1. <ul class="ei-slider-large">
  2. <?php
  3.     $dbconnection = mysql_connect($dbhost, $dbuser, $dbpass) or trigger_error(mysql_error(),E_USER_ERROR);
  4.     mysql_select_db($dbname, $dbconnection);
  5.     $query_sliders = "SELECT * FROM ".$dbprefix.$dbsprt."sliders";
  6.     $sliders = mysql_query($query_sliders, $dbconnection) or die(mysql_error());
  7.      
  8.   while($row_sliders = mysqli_fetch_array($sliders, MYSQLI_ASSOC)){
  9.  
  10.  
  11.     $com_sliderdata_id          = utf8_encode($row_sliders['id']);
  12.     $com_sliderdata_alias       = utf8_encode($row_sliders['alias']);
  13.     $com_sliderdata_title       = utf8_encode($row_sliders['title']);
  14.     $com_sliderdata_body        = utf8_encode($row_sliders['body']);
  15.     $com_sliderdata_image       = utf8_encode($row_sliders['image']);
  16.     $com_sliderdata_type        = utf8_encode($row_sliders['type']);
  17.     $com_sliderdata_language    = utf8_encode($row_sliders['language']);
  18.      ?>
  19.             <li class="<?php echo $com_sliderdata_alias; ?> slide align- image-content-type">
  20.                 <?php echo $com_sliderdata_image; ?>
  21.                 <div class="ei-title">
  22.                     <h2><?php echo $com_sliderdata_title; ?></h2>
  23.                     <h3><?php echo $com_sliderdata_body; ?></h3>
  24.                 </div>
  25.             </li>
  26.     <?php } ?>
  27.     </ul>
  28.  
  29. ?>
  #5 (permalink)  
Antiguo 19/07/2014, 08:39
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Obtener registros e imprimirlos en loop for()

WOWW!!! its amazing, Gracias a ambos, bueno no uso mysqli por lo que me da error alli lo cambie y listo. Muchas gracias!
Estoy muy agradecido, llevo ya 3 dias en esto y no lo lograba.
  #6 (permalink)  
Antiguo 19/07/2014, 10:47
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Obtener registros e imprimirlos en loop for()

Si me refería a las variables, pero veo que xerifandtomas ya te a completado el trabajo jeje.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #7 (permalink)  
Antiguo 19/07/2014, 12:51
Avatar de eccorposse  
Fecha de Ingreso: diciembre-2009
Ubicación: Beijing
Mensajes: 69
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Obtener registros e imprimirlos en loop for()

Jajaja si, bueno no sabia donde colocar el while() y me vino muy bien su ayuda, muchas gracias a ambos.
  #8 (permalink)  
Antiguo 20/07/2014, 08:48
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Obtener registros e imprimirlos en loop for()

Cita:
Iniciado por eccorposse Ver Mensaje
Jajaja si, bueno no sabia donde colocar el while() y me vino muy bien su ayuda, muchas gracias a ambos.
Gracias por las gracias, valga la redundancia.
Muchas veces un ejemplo vale más que una explicación.
Y lo de mysqli fue un despiste, igualmente recomendarte su uso, lease el primer post de este foro.

Un saludo

Etiquetas: loop, mysql, registro, registros, select, sql
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 06:13.