Foros del Web » Programando para Internet » PHP »

Columnar resultados

Estas en el tema de Columnar resultados en el foro de PHP en Foros del Web. hola amigos, los molesto con una consulta, que seguramente muchos ya habran hecho, lo que necesito es simple, extraer datos de una base de datos, ...
  #1 (permalink)  
Antiguo 27/04/2014, 10:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Columnar resultados

hola amigos, los molesto con una consulta, que seguramente muchos ya habran hecho, lo que necesito es simple,
extraer datos de una base de datos, que se encolumnen por ejemplo en 4 columnas
mediante este código que les copio a continuación logro eso, pero el error es que en cada fila me muestra 4 columnas pero con el mismo dato, y lo que necesito es que en cada columna me vaya mostrando el dato siguiente.
aquí les copio el código a ver que esta mal
desde ya muchas gracias

Código PHP:
$c"select * from horarios";
$rmysqli_query($db$c) or die (mysqli_error($db));
$nmysqli_num_rows($r);

$columnas=4;


echo 
"<table>";
for (
$fila=0;$fila<$n;$fila++)
{
echo 
"<tr>";
for (
$columna=0;$columna<4;$columna++)
{
$rowmysqli_fetch_array($r);
$zona=($row['zona']);

echo 
"<td>";

echo 
" ".$zona//muestro el dato, pero me sale en c/fila 4 columnas con el mismo dato, y debería mostrar en cada columna un dato distinto

echo "</td>";
}
echo 
"</tr>";
}
echo 
"</table>"
  #2 (permalink)  
Antiguo 27/04/2014, 12:04
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Columnar resultados

el problema lo tienes aquí

Código PHP:
Ver original
  1. for ($columna=0;$columna<4;$columna++)
  2. {
  3. $zona=($row['zona']);

en cada iteración del for, inicias el fecth_array, por lo que en cada iteración recorres el primer array e imprimes 'zona'.
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 27/04/2014, 12:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Columnar resultados

hola muchas gracias por la respuesta, te consulto
como sería lo correcto?
  #4 (permalink)  
Antiguo 27/04/2014, 12:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Columnar resultados

hola muchas gracias por la respuesta, te consulto
como sería la forma correcta?
Cita:
Iniciado por guardarmicorreo Ver Mensaje
el problema lo tienes aquí

Código PHP:
Ver original
  1. for ($columna=0;$columna<4;$columna++)
  2. {
  3. $zona=($row['zona']);

en cada iteración del for, inicias el fecth_array, por lo que en cada iteración recorres el primer array e imprimes 'zona'.
  #5 (permalink)  
Antiguo 27/04/2014, 14:30
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Columnar resultados

prueba lo siguiente y si te sale algún error dilo, lo he escrito demasiado rápido y sin probar

Código PHP:
Ver original
  1. /*
  2.  *funcion para imprimir la salida
  3.  */
  4. function print_dates($dates){
  5. ?>
  6.  <table>
  7.  <tr>
  8.  <?php
  9.  foreach($dates as $date){
  10.   ?>
  11.   <td>
  12.   echo $date['zona'];
  13.   </td>
  14.  <?php
  15.  }
  16.  ?>
  17.  </tr>
  18.  </table>
  19. <?php
  20. }
  21.  
  22. $c= "select * from horarios";
  23. $r= mysqli_query($db, $c) or die (mysqli_error($db));
  24. while($d= mysqli_fetch_array($r)){
  25. $dates[]=$d;
  26. }
  27.  
  28. print_dates($dates);
__________________
Ayúdame a hacerlo por mi mismo.
  #6 (permalink)  
Antiguo 27/04/2014, 15:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Columnar resultados

hola muchas gracias por la respuesta,
con respecto al código, corregí solo un error que tenia en un echo, pero de todos modos, no funciona, muestra los datos uno seguido al otro
Cita:
Iniciado por guardarmicorreo Ver Mensaje
prueba lo siguiente y si te sale algún error dilo, lo he escrito demasiado rápido y sin probar

Código PHP:
Ver original
  1. /*
  2.  *funcion para imprimir la salida
  3.  */
  4. function print_dates($dates){
  5. ?>
  6.  <table>
  7.  <tr>
  8.  <?php
  9.  foreach($dates as $date){
  10.   ?>
  11.   <td>
  12.   echo $date['zona'];
  13.   </td>
  14.  <?php
  15.  }
  16.  ?>
  17.  </tr>
  18.  </table>
  19. <?php
  20. }
  21.  
  22. $c= "select * from horarios";
  23. $r= mysqli_query($db, $c) or die (mysqli_error($db));
  24. while($d= mysqli_fetch_array($r)){
  25. $dates[]=$d;
  26. }
  27.  
  28. print_dates($dates);
  #7 (permalink)  
Antiguo 27/04/2014, 16:06
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Columnar resultados

¿qué es lo que quieres? porque no me ha quedado claro.

quieres una tabla donde cada columna (hilera vertical) corresponda a un dato y cada grupo de datos vaya en cada fila (hilera horizontal) ¿cierto?

quieres algo como esto ¿no?



entonces ahora solo tienes que agregar los otros campos del array en la función para imprimir los valores

Código PHP:
Ver original
  1. /*
  2.  *funcion para imprimir la salida
  3.  */
  4. function print_dates($dates){
  5. ?>
  6.  <table>
  7.  <tr>
  8.  <?php
  9.  foreach($dates as $date){
  10.   ?>
  11.   <td>
  12.   <?php echo $date['zona'];?>
  13.   </td>
  14.   <td>
  15.   <?php echo $date['otro_campo_de_la_tabla_de_la_bd'];?>
  16.   </td>
  17.   <td>
  18.   <?php echo $date['y_otro_campo_mas_de_la_tabla_de_la_bd']; ?>
  19.   </td>
  20.  <?php
  21.  }
  22.  ?>
  23.  </tr>
  24.  </table>
  25. <?php
  26. }
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: mysql, resultados, select
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 23:12.