Foros del Web » Programando para Internet » PHP »

Mostrar datos tablas relacionadas

Estas en el tema de Mostrar datos tablas relacionadas en el foro de PHP en Foros del Web. Tengo un problema a la hora de mostrar los resultados de un consulta usando php...no sé que está mal. Código PHP: <?php include ( 'conexion.php' ); ...
  #1 (permalink)  
Antiguo 19/05/2011, 07:14
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Mostrar datos tablas relacionadas

Tengo un problema a la hora de mostrar los resultados de un consulta usando php...no sé que está mal.
Código PHP:
<?php
include ('conexion.php');

$sql=mysql_query("SELECT categorias.categoria_nombre,subcategorias.subcategoria_nombre FROM categorias,subcategorias WHERE categorias.categoria_id = subcategorias.categoria_id") or die( mysql_error());


while(
$row=mysql_fetch_assoc($sql)) {
  
echo 
$row['categoria_nombre'].$row['subcategoria_nombre']."<br />";


}

?>
Resultado:
Incioaaaaa
Inciobbbbb


Lo que necesito:

Inicio (tabla principal)
aaaa (tabla relacionada con id Inicio)
bbbb (tabla relacionada con id Inicio)


Eso es lo primero, y después no muestra el resto de datos, vamos no muestra los datos de la tabla principal que no contienen datos en la relacionada...

no sé si me explique...debería quedar algo así:

Inicio

-aaaa
-bbbb

Contacto

Información
  #2 (permalink)  
Antiguo 19/05/2011, 07:39
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Mostrar datos tablas relacionadas

hola, no te entiendo muy bien pero puedes hacer una prueba con esta consulta

SELECT categorias.categoria_nombre,subcategorias.subcateg oria_nombre FROM categorias INNER JOIN subcategorias ON categorias.categoria_id = subcategorias.categoria_id

de esta forma es mas elegante y optimo,
pudieras expicarte mejor,

tienes que mostrar varias subcategorias de una misma categoria?

saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #3 (permalink)  
Antiguo 19/05/2011, 07:45
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar datos tablas relacionadas

Cita:
Iniciado por rodno Ver Mensaje
hola, no te entiendo muy bien pero puedes hacer una prueba con esta consulta

SELECT categorias.categoria_nombre,subcategorias.subcateg oria_nombre FROM categorias INNER JOIN subcategorias ON categorias.categoria_id = subcategorias.categoria_id

de esta forma es mas elegante y optimo,
pudieras expicarte mejor,

tienes que mostrar varias subcategorias de una misma categoria?

saludos

Código PHP:
 tienes que mostrar varias subcategorias de una misma categoria
Si. La consulta que pusiste me muestra los mismos resultados que antes.

Incioaaaaa
Inciobbbbb
  #4 (permalink)  
Antiguo 19/05/2011, 07:56
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Mostrar datos tablas relacionadas

hola,
entonces lo que puedes hacer es dos sql

$sql=mysql_query("SELECT categorias.categoria_nombre,categorias.id From categorias") or die( mysql_error());



while($row=mysql_fetch_assoc($sql)) {

echo $row['categoria_nombre'];
$sql2=mysql_query("SELECT subcategorias.subcategoria_nombre From subcategorias Where subcategorias.id=".$row['id']) or die( mysql_error());

while($row2=mysql_fetch_assoc($sql2))
{
echo "-".$row2['subcategoria_nombre']."<br />";
}

}

saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #5 (permalink)  
Antiguo 19/05/2011, 08:07
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Mostrar datos tablas relacionadas

o, mejor aun prueba de esta forma

<?php
include ('conexion.php');

$sql=mysql_query("SELECT categorias.categoria_nombre,subcategorias.subcateg oria_nombre FROM categorias INNER JOIN subcategorias ON categorias.categoria_id = subcategorias.categoria_id") or die( mysql_error());


while($row=mysql_fetch_assoc($sql))
{
if ($Padre==$row['categoria_nombre'])
{
echo "-".$row['subcategoria_nombre']."<br />";
}
else /// en el primer registro siempre va entrar aqui
{
$Padre=$row['categoria_nombre'];
echo $row['categoria_nombre']."<br/>";
echo "-".$row['subcategoria_nombre']."<br />";
}



}

?>

saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #6 (permalink)  
Antiguo 19/05/2011, 10:31
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar datos tablas relacionadas

Cita:
Iniciado por rodno Ver Mensaje
o, mejor aun prueba de esta forma

<?php
include ('conexion.php');

$sql=mysql_query("SELECT categorias.categoria_nombre,subcategorias.subcateg oria_nombre FROM categorias INNER JOIN subcategorias ON categorias.categoria_id = subcategorias.categoria_id") or die( mysql_error());


while($row=mysql_fetch_assoc($sql))
{
if ($Padre==$row['categoria_nombre'])
{
echo "-".$row['subcategoria_nombre']."<br />";
}
else /// en el primer registro siempre va entrar aqui
{
$Padre=$row['categoria_nombre'];
echo $row['categoria_nombre']."<br/>";
echo "-".$row['subcategoria_nombre']."<br />";
}



}

?>

saludos
Genial modifiqué un poco la sentencia poniendole LEFT OUTER JOIN para que mostrase así los campos que no contenian conincidencias va perfecto :).

Aunque eso de que el primer registro siempre me gnera el problema siguiente:

Incio
-aaaaa
-bbbbb
Informacion
-ccccc
Peliculas
-

Aunque pelicula no tiene hijito muestra su - debido al if...pero bueno estoy pensando xD

Última edición por AdrianSeg; 19/05/2011 a las 10:43
  #7 (permalink)  
Antiguo 19/05/2011, 11:01
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Mostrar datos tablas relacionadas

hola,
bueno eso lo haces comprobando que ese registro contenga algo,

cualquier cosa que te enrredes me tiras pa'ca

saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #8 (permalink)  
Antiguo 19/05/2011, 11:10
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Mostrar datos tablas relacionadas

Cita:
Iniciado por rodno Ver Mensaje
hola,
bueno eso lo haces comprobando que ese registro contenga algo,

cualquier cosa que te enrredes me tiras pa'ca

saludos

Si, eso es lo que hice. Ahora ando dándole vueltas a ver que estilos le pongo y dónde irian los anlaces.


Código PHP:
<?php
include ('conexion.php');

$sql=mysql_query("SELECT categorias.categoria_nombre,subcategorias.subcategoria_nombre FROM categorias LEFT OUTER JOIN subcategorias ON categorias.categoria_id = subcategorias.categoria_id") or die( mysql_error());


while(
$row=mysql_fetch_assoc($sql))
{
    
if (
$Padre==$row['categoria_nombre'])
{
echo 
"-".$row['subcategoria_nombre']."<br />";
}
else 
/// en el primer registro siempre va entrar aqui
{
$Padre=$row['categoria_nombre'];
echo 
$row['categoria_nombre']."<br/>";

if (
$row['subcategoria_nombre'] !='')

echo 
"-".$row['subcategoria_nombre']."<br />";
}




}


?>
  #9 (permalink)  
Antiguo 19/05/2011, 12:34
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Mostrar datos tablas relacionadas

ok,
lo que queda es boberia, ya lo fuerte lo hicistes que es lo que vale

saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..

Etiquetas: relacionadas, tablas
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 03:59.