Foros del Web » Programando para Internet » PHP »

Un registro al lado del otro

Estas en el tema de Un registro al lado del otro en el foro de PHP en Foros del Web. Hola amigos: Como puedo hacer para presentar en un resultado un regsitro al lado del otro??. Es decir de esta manera: Nombre Nombre Nombre Telefono ...
  #1 (permalink)  
Antiguo 02/12/2006, 05:04
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Un registro al lado del otro

Hola amigos:

Como puedo hacer para presentar en un resultado un regsitro al lado del otro??. Es decir de esta manera:
Nombre Nombre Nombre
Telefono Telefono Telefono
Domicilio Domicilio Domicilio


Gracias
  #2 (permalink)  
Antiguo 02/12/2006, 06:42
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Simplemente yo lo haría combinando HTML y PHP.
Si sabes utilizar los comandos de php while y mysql_fetch_array, te será muy facil
Yo haría el siguiente código:
Código PHP:
<table>
<tr>
<?
while ($info mysql_fetch_array($result)) {
?>
<td><?=$info['nombre']; ?></td>
<? ?>
</tr>
<tr><?
while ($info mysql_fetch_array($result1)) {
?>
<td><?=$info['telefono']; ?></td>
<? ?>
</tr>
<tr>
<?
while ($info mysql_fetch_array($result2)) {
?>
<td><?=$info['domicilio']; ?></td>
<? ?>
...
</table>
Cada $result $result1 $result2... Son los resultados a elegir por ejemplo:
$result = mysql_query("SELECT nombre FROM clientes");
Espero te quede claro con este ejemplo ;)
  #3 (permalink)  
Antiguo 02/12/2006, 07:28
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
La verdad es que no lo entiendo, alguien conoce un metodo mas facil ????

Gracias
  #4 (permalink)  
Antiguo 04/12/2006, 04:16
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Probablemente ya no lo necesites, pero te lo dejo aquí por si te sirve a ti o a otro.

No se si este método es más fácil, pero creo que es muy claro y te permitirá listar las filas de una tabla con el número de columnas que quieras. El siguiente script lleva dos procesos de listado de la tabla, diferentes: el primero es el tradicional, que lista cada fila de la tabla en una linea; el segundo la lista en columnas (creo que es lo que querías).

Código PHP:
<?php
// Conexion, seleccion de base de datos
$enlace mysql_connect('host''usuario''pass')
   or die(
'No pudo conectarse : ' mysql_error());
mysql_select_db('tu base de datos') or die('No pudo seleccionarse la BD.');

/*****************************************************************************************
PRIMERA PARTE: lista cada fila en una linea (forma habitual)
*****************************************************************************************/
echo '<br>Listado de la tabla, una linea por fila';
$ssql  'SELECT * FROM departamentos';
$resultado mysql_query($ssql) or die('La consulta fall&oacute;: ' mysql_error());

echo 
'<table border="1">';
while (
$row mysql_fetch_array($resultado)) 
{
   echo 
'<tr>';
       echo 
'<td>'.$row[id].'</td>';
       echo 
'<td>'.$row[nombre].'</td>';
       echo 
'<td>'.$row[fecha].'</td>';
   echo 
'</tr>';

}
echo 
'</table>';
mysql_free_result($resultado);

/*****************************************************************************************
SEGUNDA PARTE: lista cada fila, en una columna (por defecto 3 columnas)
    $tope indica el número de columnas (se puede variar)
*****************************************************************************************/
echo '<hr><br>Listado de la tabla, cada fila en una columna';
$ssql  'SELECT * FROM departamentos';
$resultado mysql_query($ssql) or die('La consulta fall&oacute;: ' mysql_error());

echo 
'<table width=65% border="1">';
$contador=0;
$tope=3//-numero de columnas 
while ($row mysql_fetch_array($resultado)) 
{
   if (
$contador $tope-1)
   {
    
//-aqui se imprimen las filas en columnas
    
listar($array,$contador,$tope);    
    
//-una vez imprimidas, se inicializa la tabla y contador
    
$array=array();
      
$contador=0;
   }
   
//-se van cargando cada fila en la tabla
   
$array[$contador]=$row;
   ++
$contador;
}

//-si el número de filas no es múltiplo de $contador, sacar las últimas que faltan
if (count($array) > 0)
{
    
//-aqui se imprimen las que faltan
    
listar($array,$contador,$tope);
}
echo 
'</table>';

mysql_free_result($resultado);

// Cerrar la conexion
mysql_close($enlace);

/*****************************************************************************************
funcion que lista las filas de la tabla, por columnas
*****************************************************************************************/
function listar($array,$contador,$tope){
    
$width=100/$tope;
       echo 
'<tr bgcolor="FFD700">';
    for (
$i 0$i $contador$i++)
    {
          echo 
'<td width='.$width.'%>'.$array[$i][id].'</td>';
    }
       echo 
'</tr>';
       echo 
'<tr>';
    for (
$i 0$i $contador$i++)
    {
          echo 
'<td width='.$width.'%>'.$array[$i][nombre].'</td>';
    }
       echo 
'</tr>';
       echo 
'<tr>';
    for (
$i 0$i $contador$i++)
    {
          echo 
'<td width='.$width.'%>'.$array[$i][fecha].'</td>';
    }
       echo 
'</tr>';
}

?>
Como ves, sólo necesitar hacer una única select a tu tabla. Un saludo.

Última edición por holahola; 04/12/2006 a las 06:17 Razón: Adaptado para que el ancho de las columnas sea igual
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 10:52.