Foros del Web » Programando para Internet » PHP »

Error en una consulta de tablas

Estas en el tema de Error en una consulta de tablas en el foro de PHP en Foros del Web. Muy buenas tardes, os explico cual es el problema que tengo. Tengo 3 tablas en la BD. 1ª LLAMADA: trabajos "que contiene"( id, strtitulo ) ...
  #1 (permalink)  
Antiguo 29/07/2015, 12:39
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Error en una consulta de tablas

Muy buenas tardes, os explico cual es el problema que tengo.

Tengo 3 tablas en la BD.

1ª LLAMADA: trabajos "que contiene"( id, strtitulo )
2ª LLAMADA: contenido "que contiene" ( id, idtrabajo, strimagenp, strtitulo, strdescripcionp )
3ª LLAMADA: descripcion "que contiene" ( id, idcontenido, strimagen,strcliente ,strnegocio, strcaracteristicas, strprogramas, strdescrip )

La funcion de esto es?

Con la primera tabla saco un menu con los trabajos.
Con la segunda enlaza el contenido a traves de (idtrabajo) de la tabla CONTENIDO con (id) de la tabla TRABAJOS.

CON ESTO SACO LA CONSULTA DEL MENU.

Código PHP:
<?php

// Conectando, seleccionando la base de datos
$link mysql_connect('localhost''root''root')
    or die(
'No se pudo conectar: ' mysql_error());

mysql_select_db('artde') or die('No se pudo seleccionar la base de datos');

// Ejecutar la consulta
$queryTrabajos "SELECT id, strtitulo FROM trabajos";
$trabajos mysql_query($queryTrabajos) or die('Consulta fallida: ' mysql_error());

?>
Código PHP:
<?php

// Usar el resultado
// Si se intenta imprimir $resultado no será posible acceder a la información del recurso
// Se debe usar una de las funciones de resultados de mysql
// Consulte también mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($trabajo mysql_fetch_assoc($trabajos)) {
    echo 
"<li><a href=\"./vertrabajo.php?idtrabajo=" $trabajo['id'] . "\"> " $trabajo['strtitulo'] . " </a></li>";
}
?>

CON ESTO SACARE EL CONTENIDO DE CADA ARCHIVO/CONSULTA

Código PHP:
<?php

// Conectando, seleccionando la base de datos
$link mysql_connect('localhost''root''root')
    or die(
'No se pudo conectar: ' mysql_error());

mysql_select_db('artde') or die('No se pudo seleccionar la base de datos');


// Ejecutar la consulta
$queryTrabajo "SELECT id, strtitulo FROM trabajos Where id = " $_GET['idtrabajo'];
$trabajo mysql_query($queryTrabajo) or die('Consulta fallida: ' mysql_error());
?>


<div class="fondo_contacto">
<?php



// Usar el resultado
// Si se intenta imprimir $resultado no será posible acceder a la información del recurso
// Se debe usar una de las funciones de resultados de mysql
// Consulte también mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
if ($trabajoDetalle mysql_fetch_assoc($trabajo)) {
    echo 
"<h1> " $trabajoDetalle['strtitulo'] . " </h1>\n";

// Ejecutar la consulta
    
$queryContenidos "SELECT * FROM contenido Where idtrabajo = " $_GET['idtrabajo'];
    
$contenidos mysql_query($queryContenidos) or die('Consulta fallida: ' mysql_error());
    
    while (
$contenido mysql_fetch_assoc($contenidos)) {
        

        echo 
"<li>" $contenido['strimagenp'] . "<br>
            " 
$contenido['strtitulo'] . "<br>
"
$contenido['strdescripcionp'] . " </li>\n";
         }
         

    
// Liberar los recursos asociados con el conjunto de resultados
    // Esto se ejecutado automáticamente al finalizar el script.
    
mysql_free_result($contenidos);        
    }
?>

</div>
<?php

// Liberar los recursos asociados con el conjunto de resultados
// Esto se ejecutado automáticamente al finalizar el script.
mysql_free_result($trabajos);


// Cerrar la conexión
mysql_close($link);

?>
Lo que necesito es sacar el contenido de la 3ª tabla, por ejemplo con un enlace en la imagen mostrada en esta consulta y que abra el contenido que le toca según la idcontenido de la tabla DESCRIPCION con id de la tabla CONTENIDO.

No se si me he explicado bien, pero no se como explicarlo mejor.

Saludos y gracias
  #2 (permalink)  
Antiguo 29/07/2015, 14:25
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 11 años, 1 mes
Puntos: 8
Respuesta: Error en una consulta de tablas

Puedes usar INNER JOIN para obtener todo el contenido de una vez y asi poder mostrarlo
__________________
--
Aqui fegm_4
  #3 (permalink)  
Antiguo 30/07/2015, 05:08
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Error en una consulta de tablas

Cita:
Iniciado por fegm_4 Ver Mensaje
Puedes usar INNER JOIN para obtener todo el contenido de una vez y asi poder mostrarlo
Buscare tutoriales haber si soy capaz de sacar.l! muchas gracias
  #4 (permalink)  
Antiguo 30/07/2015, 06:05
 
Fecha de Ingreso: julio-2015
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Error en una consulta de tablas

Si lo he entendido bien, quieres con un enlace (que lleva el ID de la contenido) sacar la informacion de la tabla descripcion?

si es asi, creo que con la consulta siguiente te vale:

Código SQL:
Ver original
  1. SELECT descripcion.* FROM contenido, descripcion WHERE contenido.id=descripcion.idcontenido;

el contenido.id lo sacas del GET si lo haces por enlace.
espero que te sea de ayuda

Etiquetas: mysql, select, tabla, 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 17:19.