Foros del Web » Programando para Internet » PHP »

crear tablas desde base de datos con titulo distinto cada una.

Estas en el tema de crear tablas desde base de datos con titulo distinto cada una. en el foro de PHP en Foros del Web. Aver si me explico, lo más sencillo es repetir la region y listo genero un tabla en este caso con 4 campos uno pais, otro ...
  #1 (permalink)  
Antiguo 13/03/2006, 16:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 79
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta crear tablas desde base de datos con titulo distinto cada una.

Aver si me explico, lo más sencillo es repetir la region y listo genero un tabla en este caso con 4 campos uno pais, otro nombre, otro dirección y otro telefono y me salen todos los registros de la base de datos, eso sin problema, el caso es que en una sola pagina me genere tablas para cada pais

normalmente al hacer una tabla de todos los registros de personas en una base de datos ordenada por país obtendría esto, (de hecho esto si que lo he conseguido hacer):


+---------------+--------------------+-----------+----------+
l.......País...........l.......Nombre........... l...Telefono..l.....sexo....l
+---------------+--------------------+-----------+----------+
l......Alemania.....l.......Pedro R...... .....l...567-3454.l .......H......l
+---------------+--------------------+-----------+----------+
l......Alemania.....l.......Laura...............l. ..567-8688.l.......M......l
+---------------+--------------------+-----------+----------+
l......España ......l.......Jose.................l.890-4398..l........H......l
+---------------+--------------------+-----------+----------+
l......Mexico........l......Carlos...............l .678-4567..l........H......l
+---------------+--------------------+-----------+----------+



y yo quiero que aparezca de la siguiente manera:

Alemania
+-------------+-------------+--------+
l......Pedro R....l...567-3454....l......H....l
+-------------+-------------+--------+
l......Laura.......l...567-8688....l......M....l
+-------------+-------------+--------+

España
+-------------+-------------+--------+
l.....Jose.........l....890-4398...l.....H......l
+-------------+-------------+--------+

México
+-------------+-------------+--------+
l......Carlos......l..678-4567.....l.....H.....l
+-------------+-------------+--------+


Este es el problema que necesito que en lugar de aparecer el país como un campo mas en la tabla me aparezca como titulo de esa tabla.

Última edición por Importtex; 14/03/2006 a las 04:27
  #2 (permalink)  
Antiguo 13/03/2006, 17:14
okram
Invitado
 
Mensajes: n/a
Puntos:
no entendii... Podrias explicar tu problema de manera mas concreta??
  #3 (permalink)  
Antiguo 13/03/2006, 18:23
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 10 meses
Puntos: 0
De acuerdo Tablas dinamicas

Por lo que te entiendo, desaes llamar a varias tablas de la base de datos y mostrarlas en 1 sola pag. Si es así podrías empesar a buscar por la utilizacion de tablas dinamicas y las sentencias mysql


  #4 (permalink)  
Antiguo 13/03/2006, 18:36
okram
Invitado
 
Mensajes: n/a
Puntos:
Código PHP:
//<?
$sql 
"SELECT * FROM tabla ORDER BY pais DESC";
$query mysql_query($sql);

while(
$row mysql_fetch_array($query)) {

//cambia $row['pais'] por el nombre de la columna donde esta ese dato

if($pais !== $row['pais']) {

$pais $row['pais'];

$sql2 "SELECT * FROM tabla WHERE pais='".$pais."'";
$query2 mysql_query($sql2);

echo 
'<tr><td colspan=3>'.$pais.'</td></tr>';
echo 
'<tr><td>Nombre</td><td>Direccion</td><td>Telefono</td></tr>';

while(
$datos mysql_fetch_array($query2)) {

echo 
'<tr><td>'.$datos['nombre'].'</td><td>'.$datos['direccion'].'</td><td>'.$datos['telefono'].'</td></tr>';

}

echo 
'<tr><td colspan=3> </td></tr>';

unset(
$sql2);
 unset(
$query2);
  unset(
$datos);

}

}
Supongo que querias algo como eso... aunque no se si funcione.... postea si tienes algun problema...

Última edición por okram; 13/03/2006 a las 21:44
  #5 (permalink)  
Antiguo 14/03/2006, 04:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 79
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta No me funciona, explicare de nuevo.

normalmente al hacer una tabla de todos los registros de personas en una base de datos ordenada por país obtendría esto, (de hecho esto si que lo he conseguido hacer):


+---------------+--------------------+-----------+----------+
l.......País...........l.......Nombre........... l...Telefono..l.....sexo....l
+---------------+--------------------+-----------+----------+
l......Alemania.....l.......Pedro R...... .....l...567-3454.l .......H......l
+---------------+--------------------+-----------+----------+
l......Alemania.....l.......Laura...............l. ..567-8688.l.......M......l
+---------------+--------------------+-----------+----------+
l......España ......l.......Jose.................l.890-4398..l........H......l
+---------------+--------------------+-----------+----------+
l......Mexico........l......Carlos...............l .678-4567..l........H......l
+---------------+--------------------+-----------+----------+



y yo quiero que aparezca de la siguiente manera:

Alemania
+-------------+-------------+--------+
l......Pedro R....l...567-3454....l......H....l
+-------------+-------------+--------+
l......Laura.......l...567-8688....l......M....l
+-------------+-------------+--------+

España
+-------------+-------------+--------+
l.....Jose.........l....890-4398...l.....H......l
+-------------+-------------+--------+

México
+-------------+-------------+--------+
l......Carlos......l..678-4567.....l.....H.....l
+-------------+-------------+--------+


Este es el problema que necesito que en lugar de aparecer el país como un campo mas en la tabla me aparezca como titulo de esa tabla.

Última edición por Importtex; 14/03/2006 a las 04:25
  #6 (permalink)  
Antiguo 14/03/2006, 18:56
okram
Invitado
 
Mensajes: n/a
Puntos:
pues si, te entendi y por eso te postee ese codigo, pero tuve unos cuantos errores... ahora lo acabo de probar y logre que funcione, todo se trataba de las etiquetas <table>:

Código PHP:
<?php
 
/*
 
CONEXION A LA BASE DE DATOS
 
include('connect.php');
$doconnect = SetDBConnection();
*/
 
$sql "SELECT * FROM tabla ORDER BY pais ASC";
$query mysql_query($sql);
 
echo 
'<table>';
 
while(
$row mysql_fetch_array($query)) {
 
//cambia $row['pais'] por el nombre de la columna donde esta ese dato
 
if($pais !== $row['pais']) {
 
$pais $row['pais'];
 
$sql2 "SELECT * FROM tabla WHERE pais='".$pais."' ORDER BY nombre ASC";
$query2 mysql_query($sql2);
 
echo 
'<tr><td colspan=3>'.$pais.'</td></tr>';
echo 
'<tr><td>Nombre</td><td>Direccion</td><td>Telefono</td></tr>';
 
while(
$datos mysql_fetch_array($query2)) {
 
echo 
 
'<tr><td>'.$datos['nombre'].'</td><td>'.$datos['direccion'].'</td><td>'.$datos['t
 
elefono'
].'</td></tr>';
 
}
 
echo 
'<tr height=20><td colspan=3> </td></tr>';
 
unset(
$sql2);
unset(
$query2);
unset(
$datos);
 
}
 

 
echo 
'</table>';
?>
y en connect.php:
Código PHP:
<?php
 
function SetDBConnection()
 
{
 
$db_hostnp 'SERVIDOR'
$db_nombrenp 'BASE_DE_DATOS'
$db_usernp 'USUARIO'
$db_passnp 'PASSWORD'
 
$doconnect=mysql_connect($db_hostnp$db_usernp$db_passnp) or die ('conectar');
 
mysql_select_db($db_nombrenp ,$doconnect) or die ('seleccionar');
 
return 
$doconnect;
 
}
 
?>
Como te digo, yo ya lo probe y funciona tal y como tu lo deseas... mira esta toma:


Última edición por okram; 06/06/2006 a las 19:14
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 13:02.