Foros del Web » Programando para Internet » PHP »

Problema con mostrar los datos de MySql en una TABLA con PHP

Estas en el tema de Problema con mostrar los datos de MySql en una TABLA con PHP en el foro de PHP en Foros del Web. Hola quiero aser lo siguiente, Tengo una base de datos de productos y quiero mostrarlo mediante tablas o de algun modo parecido, talvez con div ...
  #1 (permalink)  
Antiguo 16/08/2012, 11:57
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Problema con mostrar los datos de MySql en una TABLA con PHP

Hola quiero aser lo siguiente, Tengo una base de datos de productos y quiero mostrarlo mediante tablas o de algun modo parecido, talvez con div pero que quede de tal manera que salgan 3 columnas solamente, luego la cantidad de filas dependeran de la cantidad de datos.

Con PHP solo logre aser que los datos se muestren en una sola fila o en una sola columna pero no en 3 columnas y X filas.


El codigo para que salga en una sola fila es este:

Código PHP:
<table width="600" border="1" aling="left">
  <tr><?php do { ?>
    <td>
             
      <table width="195" border="1">  
        <tr>
     <td width="235"><img src="<?php echo $row_catalogo_imag['Imagen']; ?>" width="150" height="150" / ></td>
        </tr>
        <tr>
          <td><?php echo $row_catalogo_imag['Tipo']; ?></td>
        </tr>
        <tr>
          <td><?php echo $row_catalogo_imag['Nombre']; ?></td>
        </tr>
        <tr>
          <td><?php echo $row_catalogo_imag['Precio']; ?></td>
        </tr>
        <tr>
          <td><?php echo $row_catalogo_imag['Descripcion']; ?></td>
        </tr>       
      </table>
  </td>
 <?php } while ($row_catalogo_imag mysql_fetch_assoc($catalogo_imag)); ?>
  </tr>
</table>

Tal vez hay una manera de decirle al bucle que cada 3 datos se saltee un renglon o que pase a la otra fila, alguien puede darme ideas como aserlo o algun ejemplo simple de lo que quiero aser?.

Última edición por XxSoulDarkxX; 16/08/2012 a las 12:02
  #2 (permalink)  
Antiguo 16/08/2012, 12:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Pues podrías hacer algo como esto :

Código PHP:
Ver original
  1. $x=0;
  2. while($row_catalogo_imag=mysql_fetch_assoc($consulta)){
  3. echo"
  4. <div>
  5. <img src=\"$row_catalogo_imag[Imagen]\"  width=\"150\" height=\"150\" / ><br/>
  6. $row_catalogo_imag[Tipo]<br/>
  7. $row_catalogo_imag[Nombre]<br/>
  8. $row_catalogo_imag[Precio]<br/>
  9. $row_catalogo_imag[Descripcion]<br/>
  10. </div>";
  11. $x++;
  12. if(!($x%3)) //si al dividir $x entre 3 da cero
  13.    echo "<br/>";//colocar un salto de linea
  14. }
Y te recomendaría usar css para dar mejor estilo a los divs
  #3 (permalink)  
Antiguo 16/08/2012, 12:19
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Cita:
Iniciado por ocp001a Ver Mensaje
Pues podrías hacer algo como esto :

Código PHP:
Ver original
  1. $x=0;
  2. while($row_catalogo_imag=mysql_fetch_assoc($consulta)){
  3. echo"
  4. <div>
  5. <img src=\"$row_catalogo_imag[Imagen]\"  width=\"150\" height=\"150\" / ><br/>
  6. $row_catalogo_imag[Tipo]<br/>
  7. $row_catalogo_imag[Nombre]<br/>
  8. $row_catalogo_imag[Precio]<br/>
  9. $row_catalogo_imag[Descripcion]<br/>
  10. </div>";
  11. $x++;
  12. if(!($x%3)) //si al dividir $x entre 3 da cero
  13.    echo "<br/>";//colocar un salto de linea
  14. }
Y te recomendaría usar css para dar mejor estilo a los divs
Hola, tiene mucho sentido el codigo que me has brindado, cada while suma suma 1 a una variable y si la variable se divide entre 3 da como resultado 0 entonses ase un salto, pero que pasa cuando la variable suma 6 o 9? ya no se cumplira la condicion, aunque tengo que probarlo, de todas maneras ya tengo algo y e aprendido un poco. te cuento como me sale en un toque.
  #4 (permalink)  
Antiguo 16/08/2012, 12:21
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Simples matemáticas: 6,9 etc. son múltiplos de 3, por tanto darán residuo 0 al hacer la división.
  #5 (permalink)  
Antiguo 16/08/2012, 12:25
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Cita:
Iniciado por ocp001a Ver Mensaje
Simples matemáticas: 6,9 etc. son múltiplos de 3, por tanto darán residuo 0 al hacer la división.
Pero 6 / 3 es igual a 2 y 9/3 es igual a 3.

Otra consulta, persona mi ignorancia pero la variable consulta normalmente que datos le ponen a esa variable
  #6 (permalink)  
Antiguo 16/08/2012, 12:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Si te fijas, no es la división como tal, es el módulo, es decir, el % te devuelve el residuo, por tanto
6/3=2
6%3=0

En consulta es lo que hayas consultado, imagino que los datos los traes de tu consulta, cualquier a que sea.
  #7 (permalink)  
Antiguo 16/08/2012, 15:40
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

es más sencillo hacerlo con css :)
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #8 (permalink)  
Antiguo 17/08/2012, 14:50
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Cita:
Iniciado por ocp001a Ver Mensaje
Si te fijas, no es la división como tal, es el módulo, es decir, el % te devuelve el residuo, por tanto
6/3=2
6%3=0

En consulta es lo que hayas consultado, imagino que los datos los traes de tu consulta, cualquier a que sea.
E intentado con los codigos que me rindaste pero no logro hacer que funcione, me batan errores y los corregi pero aun no me muestran los datos como quiero.


Cita:
Iniciado por jcxnet Ver Mensaje
es más sencillo hacerlo con css :)
Yo solo se CSS muy basico, creo que tu respuesta no ayuda de mucho si no viene por lo menos con un ejemplo.
  #9 (permalink)  
Antiguo 17/08/2012, 14:53
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

<table>
<tr>
<td>Celda 1</td>
<td>Celda 2</td>
<td>Celda 3</td>
</tr>
<tr>
<td>Celda 4</td>
<td>Celda 5</td>
<td>Celda 6</td>
</tr>
</table>

alomejor te sirve

Última edición por webankenovi; 17/08/2012 a las 15:03
  #10 (permalink)  
Antiguo 17/08/2012, 15:04
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Pues debería poner el código que tienes y los errores que te muestra, para poder ayudarte.
  #11 (permalink)  
Antiguo 18/08/2012, 02:33
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Cita:
Iniciado por ocp001a Ver Mensaje
Pues debería poner el código que tienes y los errores que te muestra, para poder ayudarte.
Ya logre conseguir un buen ejemplo pero solo me mostraba un campo por columna, afortunadamente logre modificarlo y me muestra hasta 3 o 4 campos por columna y hasta las imagenes de las rutas de la base de datos.
  #12 (permalink)  
Antiguo 18/08/2012, 10:14
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Cita:
Iniciado por webankenovi Ver Mensaje
<table>
<tr>
<td>Celda 1</td>
<td>Celda 2</td>
<td>Celda 3</td>
</tr>
</table>

alomejor te sirve
<div id="campo1">aqui todos los campos como quieras mostrarlo, vas rellenando automaticamente la pantalla de divs y segun la anchura de la pantalla del usuario y/o la anchura del div contenedor y la anchura de los divs pùeden ser 3 4 5 2 columnas </div>

si creas el div de 300 ylos vas insertando en un div contenedor de 900 pues siempre seran 3 columnas

como te han dicho css es la alternativa , aprendelo y veras sus posibilidades , me alegro de que lo hayas logrado , podrias subir el codigo de la solucion para si otro usuario tiene el mismo problema pueda resolverlo , un saludo



te puse esto por que es la estructura basica a seguir para crear el bucle

Última edición por webankenovi; 18/08/2012 a las 10:21
  #13 (permalink)  
Antiguo 18/08/2012, 13:37
Avatar de corh861212  
Fecha de Ingreso: julio-2012
Ubicación: en el estado de mexico
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

hola creo que esto es mas facil son datos de una base de datos mostrados en una tabla php fasilmente con un while
Código PHP:
$dbhost='localhost'// Servidor
$dbusername='daniel'// Nombre de usuario
$dbuserpass=''// Contraseña
$dbname='punto'// Nombre de la base de datos

$link=mysql_connect($dbhost,$dbusername,$dbuserpass);
mysql_select_db($dbname)or die('no se puede seleccionar la base de datos'); 
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns2="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Punto de venta HDCR</title>
<link rel="stylesheet" type="text/css" href="stylemedic.css" media="screen" />
</head>
<body>
<div id="main_content">
<div id="iframe2">
[PHP]
<?
$resultado=mysql_query("SELECT * FROM producto",$link);
echo"
<table border='0'id='mi_tabla'>
<thead>
<tr> <td colspan='8'> Buscar <input id='filtrar' type='text' /></td><td colspan='5'><button onclick='salir(this)'accesskey='p'type='submit'>Salir</button></td></tr>
<tr>
<th><></th>
<th>CODIGO</th>
<th>DESCRIPCION</th>
<th>COSTO</th>
<th>VENTA</th>
<th>EXISTENCIAS</th>
<th>DIA</th>
<th>MES</th>
<th>A&ntilde;o</th>
</tr>
</thead>";
echo "<tbody>";
//ojo aqui esta el bucle que mustra los datos
while ($campo= mysql_fetch_row($resultado)){
$fecha=explode ("-",$campo[7]);
echo"<tr style='cursor:pointer' class='desmarcado' onclick='muestra(this)' >";
echo"<td>".$campo[1]."</td>";
echo"<td>".$campo[2]."</td>";
echo"<td>".$campo[3]."</td>";
echo"<td>".$campo[4]."</td>";
echo"<td>".$campo[5]."</td>";
echo"<td>".$campo[6]."</td>";
echo"<td>".$fecha[2]."</td>";
echo"<td>".$fecha[1]."</td>";
echo"<td>".$fecha[0]."</td>";
echo"</tr>";
}
echo"</tbody>";
echo "</table>";
?>
[/PHP]
</div>
</div> 
Y basicamente lo que esto hace ES MOSTRAR TODOS TUS REG DE TU BASE DE DATOS EN UNA TABLA QUE ES CREADA DINAMICAMENTE
pon esto en el css para que sea de dos colores la tabla
Código CSS:
Ver original
  1. table {
  2.             border: 1px solid gray;
  3.             border-radius: 2px;
  4.             width: 700px; /* Ancho fijo para que no cambie cuando se filtra */
  5.        
  6.         }
  7.        
  8.         table thead {
  9.             color: white;
  10.             background: silver;
  11.         }
  12.        
  13.        
  14.         table tbody tr:nth-child(odd){
  15.         background-color: #E0E0F8;
  16.         color:#151515;
  17.         }
  18.        
  19.         table tbody tr:nth-child(even){
  20.         background-color: #D8D8D8;
  21.         color:#B40404;
  22.         }
  23.  
  24.    
  25.        
  26.         table thead input[type="text"] {
  27.             float: right;
  28.         }
  29.        
  30.         table td {
  31.             border: 1px solid gray;
  32.             padding: 2px 4px;
  33.             border-radius: 2px;
  34.         }

Última edición por corh861212; 18/08/2012 a las 13:49
  #14 (permalink)  
Antiguo 18/08/2012, 16:39
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Cita:
Iniciado por corh861212 Ver Mensaje
hola creo que esto es mas facil son datos de una base de datos mostrados en una tabla php fasilmente con un while
Código PHP:
$dbhost='localhost'// Servidor
$dbusername='daniel'// Nombre de usuario
$dbuserpass=''// Contraseña
$dbname='punto'// Nombre de la base de datos

$link=mysql_connect($dbhost,$dbusername,$dbuserpass);
mysql_select_db($dbname)or die('no se puede seleccionar la base de datos'); 
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns2="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Punto de venta HDCR</title>
<link rel="stylesheet" type="text/css" href="stylemedic.css" media="screen" />
</head>
<body>
<div id="main_content">
<div id="iframe2">
[PHP]
<?
$resultado=mysql_query("SELECT * FROM producto",$link);
echo"
<table border='0'id='mi_tabla'>
<thead>
<tr> <td colspan='8'> Buscar <input id='filtrar' type='text' /></td><td colspan='5'><button onclick='salir(this)'accesskey='p'type='submit'>Salir</button></td></tr>
<tr>
<th><></th>
<th>CODIGO</th>
<th>DESCRIPCION</th>
<th>COSTO</th>
<th>VENTA</th>
<th>EXISTENCIAS</th>
<th>DIA</th>
<th>MES</th>
<th>A&ntilde;o</th>
</tr>
</thead>";
echo "<tbody>";
//ojo aqui esta el bucle que mustra los datos
while ($campo= mysql_fetch_row($resultado)){
$fecha=explode ("-",$campo[7]);
echo"<tr style='cursor:pointer' class='desmarcado' onclick='muestra(this)' >";
echo"<td>".$campo[1]."</td>";
echo"<td>".$campo[2]."</td>";
echo"<td>".$campo[3]."</td>";
echo"<td>".$campo[4]."</td>";
echo"<td>".$campo[5]."</td>";
echo"<td>".$campo[6]."</td>";
echo"<td>".$fecha[2]."</td>";
echo"<td>".$fecha[1]."</td>";
echo"<td>".$fecha[0]."</td>";
echo"</tr>";
}
echo"</tbody>";
echo "</table>";
?>
[/PHP]
</div>
</div> 
Y basicamente lo que esto hace ES MOSTRAR TODOS TUS REG DE TU BASE DE DATOS EN UNA TABLA QUE ES CREADA DINAMICAMENTE
pon esto en el css para que sea de dos colores la tabla
Código CSS:
Ver original
  1. table {
  2.             border: 1px solid gray;
  3.             border-radius: 2px;
  4.             width: 700px; /* Ancho fijo para que no cambie cuando se filtra */
  5.        
  6.         }
  7.        
  8.         table thead {
  9.             color: white;
  10.             background: silver;
  11.         }
  12.        
  13.        
  14.         table tbody tr:nth-child(odd){
  15.         background-color: #E0E0F8;
  16.         color:#151515;
  17.         }
  18.        
  19.         table tbody tr:nth-child(even){
  20.         background-color: #D8D8D8;
  21.         color:#B40404;
  22.         }
  23.  
  24.    
  25.        
  26.         table thead input[type="text"] {
  27.             float: right;
  28.         }
  29.        
  30.         table td {
  31.             border: 1px solid gray;
  32.             padding: 2px 4px;
  33.             border-radius: 2px;
  34.         }
Ok chevere pero no es solamente mostrar los datos, si no que que es mostrar los datos en solo 3 columnas y X filas, el codigo que has puesto no veo que genere una variable o algo que pueda usarse para que me haga esa estructura, de todas maneras voy a probarlo cuando llegue a mi casa para ver como queda con el CSS y y el color de las tablas.

y publicare el codigo que logre conseguir y modificar para que alguien pueda usarlo si tiene el mismo problema que yo.
  #15 (permalink)  
Antiguo 19/08/2012, 17:25
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con mostrar los datos de MySql en una TABLA con PHP

Aca les pongo el codigo que me iso el milagro jajajaja, me acomodo los datos de la base de datos de la manera que queria.
Código PHP:
<table width="550px" border="1" align="center">
<?php 
  $numcolumnas 
3;
  
$consulta mysql_query("SELECT * FROM catalogo");
  
$total_resultados mysql_num_rows($consulta);
   if (
$total_resultados>0) {
     echo 
"<tr><td colspan=\"$numcolumnas\" align=\"right\"> " ?> 
     Esto era del comboBox pero era demaciado largo para ponerlo aca asi que lo borre. 
      <?php "</td></tr>";
      
      
     
$i 1;
     while(
$fila mysql_fetch_array($consulta)){
       
$resto = ($i $numcolumnas); 
       if(
$resto == 1){ /*si es el primer elemento creamos una nueva fila*/ 
         
echo "<tr>";
     }
echo 
"<td valign=\"top\" align=\"center\"><table border='0' width=\"130\" aling=\"center\">
<tr><td><a href='"
.$fila['Nombre']."'.php><img src='".$fila['Imagen']."' width=\"130px\" height=\"130px\" /></a></td></tr>
<tr><td>"
.$fila['Nombre']."</td></tr>
<tr><td>"
.$fila['Tipo']."</td></tr>
<tr><td>"
.$fila['Descripcion']."</td></tr>
</table></td>"
;
     
/*mostramos el valor del campo especificado*/ 
    
if($resto == 0){
      
/*cerramos la fila*/ 
      
echo "</tr>"
    }
   
$i++; 
 }

 if(
$resto != 0){
  
/*Si en la &uacute;ltima fila sobran columnas, creamos celdas vac&iacute;as*/
   
for ($j 0$j < ($numcolumnas $resto); $j++){
     echo 
"<td></td>"
    }
   echo 
"</tr>";
  } 
}else{ 
  echo 
"<tr><td>0 elementos encontrados</td></tr> ";
 } 
?> 
</table>
Aca esta una imagen de como me quedo agregandole un poco el CSS de un compañero que me dio los codigos en un comentario mas arriba de este.


Solo me falta ahora cambiar las imagenes los datos, tal vez crear una ase de datos con mas campos y poner el texto mas llamativo.

Etiquetas: mysql, tabla
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 16:23.