Foros del Web » Programando para Internet » PHP »

Select a 2 tablas para muestra de datos

Estas en el tema de Select a 2 tablas para muestra de datos en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente codigo: Código PHP: <?php     $conexion  =  mysql_connect ( "localhost" , "root" , "" );      mysql_select_db ( "basededatos" , ...
  #1 (permalink)  
Antiguo 24/09/2008, 08:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 55
Antigüedad: 15 años, 7 meses
Puntos: 0
Select a 2 tablas para muestra de datos

Hola a todos.
Tengo el siguiente codigo:
Código PHP:
<?php
    $conexion 
mysql_connect("localhost","root","");
    
mysql_select_db("basededatos",$conexion);

    
$Id $_GET["ID"]; //variable enviada desde form html        

    
$sql  "SELECT p.id_pro  AS nomPRO, p.estado_pro FROM procesos AS p   
    WHERE p.id_cliente = '$Id'"
;
    
$sql .= "INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro";
    
    
$res mysql_query($sql,$conexion);
    
    echo 
"<table>";
    echo 
"<tr>";        
    echo 
"<th class='th_ver'>ID</th>";
    echo 
"<th class='th_ver'>Nombre</th>";
    echo 
"<th class='th_ver'>Estado</th>";            
    echo 
"</tr>";

    while (
$row mysql_fetch_assoc($res)) {
        echo 
"<tr>";
        echo 
"<td class='td_ver'>$row[id_nom_pro]</td>";
        echo 
"<td class='td_ver'>$row[nom_PRO]</td>";
        echo 
"<td class='td_ver'>$row[est_PRO]</td>";            
        echo 
"</tr>";    
    }
    echo 
"</table>";

    
mysql_free_result($res);
    
mysql_close($conexion);
?>
El problema que tengo es que no logro hacer lo que busco, que seria mostrar los nombres de los procesos segun la id que se encuentra en la tabla nomprocesos.

El problema radica en
Código PHP:
    $sql  "SELECT p.id_pro  AS nomPRO, p.estado_pro FROM procesos AS p   
WHERE p.id_cliente = '$Id'"
;
$sql .= "INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro"
Dado a que lo realize mirando unos ejemplos de internet pero como no estoy muy metido en el tema lo hice mal y me da error.

Para explicar mejor la idea seria la siguiente:

Base de datos:

tabla nomprocesos
id_nom_pro nombre_Pro
6 Hola mundo1
5 Hola mundo2
4 Hola mundo3

tabla procesos
id_pro id_cliente estado_pro
4 2 activo
6 1 activo
5 2 activo



Yo lo que busco hacer es que al mostrar mis datos en la tabla php/html se vea asi:
Este ejemplo seria para el caso en que el numero ingresado en el form sea 2

ID NOMBRE ESTADO
4 Hola mundo3 activo
5 Hola mundo2 activo


Quedo a la espera por alguna ayuda.
  #2 (permalink)  
Antiguo 24/09/2008, 08:55
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Select a 2 tablas para muestra de datos

Código PHP:
 $sql  "SELECT n.id_nom_pro,  n.nombre_Pro AS nom_PRO, p.estado_pro AS est_PRO FROM procesos AS p   
WHERE p.id_cliente = '$Id'"
;
$sql .= "INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro"
Espero que ese sea el problema.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 24/09/2008, 09:35
 
Fecha de Ingreso: septiembre-2008
Mensajes: 55
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select a 2 tablas para muestra de datos

Cita:
Iniciado por TolerantX Ver Mensaje
Código PHP:
 $sql  "SELECT n.id_nom_pro,  n.nombre_Pro AS nom_PRO, p.estado_pro AS est_PRO FROM procesos AS p   
WHERE p.id_cliente = '$Id'"
;
$sql .= "INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro"
Espero que ese sea el problema.
Hola TolerantX gracias por la ayuda, lo probe recien pero me sigue dando el mismo error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\wamp\www\PHP\prueba.php on line 37

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\PHP\prueba.php on line 49
  #4 (permalink)  
Antiguo 24/09/2008, 10:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Select a 2 tablas para muestra de datos

Prueba agregar un chequeo:
Código php:
Ver original
  1. $res = mysql_query($sql,$conexion) or die( "Error en $sql, error: " . mysql_error() );

Saludos.
  #5 (permalink)  
Antiguo 24/09/2008, 11:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 55
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select a 2 tablas para muestra de datos

Cita:
Iniciado por GatorV Ver Mensaje
Prueba agregar un chequeo:
Código php:
Ver original
  1. $res = mysql_query($sql,$conexion) or die( "Error en $sql, error: " . mysql_error() );

Saludos.
Hola GatorV el error que me imprimio fue el siguiente:

Error en SELECT n.id_nom_pro, n.nombre_Pro AS nom_PRO, p.estado_pro AS est_PRO FROM procesos AS p WHERE p.id_cliente = '1'INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro, error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro' at line 1

Ni siquiera se q es INNER JOIN
Probe quitar la parte de INNER JOIN y me tiro el siguiente error:

Error en SELECT n.id_nom_pro, n.nombre_Pro AS nom_PRO, p.estado_pro AS est_PRO FROM procesos AS p WHERE p.id_cliente = '1', error: Unknown column 'n.id_nom_pro' in 'field list'

Ahi dira que creo que pasa eso tal vez porque solo estoy diciendo FROM procesos cuando id_nom_pro y nombre_Pro es de la tabla nomprocesos y solo id_pro id_cliente estado_pro son de la tabla procesos


tabla nomprocesos
id_nom_pro nombre_Pro
6 Hola mundo1
5 Hola mundo2
4 Hola mundo3

tabla procesos
id_pro id_cliente estado_pro
4 2 activo
6 1 activo
5 2 activo

Última edición por nightramm; 24/09/2008 a las 11:28
  #6 (permalink)  
Antiguo 24/09/2008, 11:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Select a 2 tablas para muestra de datos

La sintaxis correcta deberia de ser mas o menos asi:
Código sql:
Ver original
  1. SELECT n.id_nom_pro, n.nombre_Pro AS nom_PRO, p.estado_pro AS est_PRO FROM procesos AS p INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro WHERE p.id_cliente = '1'

Saludos.
  #7 (permalink)  
Antiguo 24/09/2008, 12:10
 
Fecha de Ingreso: septiembre-2008
Mensajes: 55
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select a 2 tablas para muestra de datos

Cita:
Iniciado por GatorV Ver Mensaje
La sintaxis correcta deberia de ser mas o menos asi:
Código sql:
Ver original
  1. SELECT n.id_nom_pro, n.nombre_Pro AS nom_PRO, p.estado_pro AS est_PRO FROM procesos AS p INNER JOIN nomprocecos AS n ON n.id_nom_pro = p.id_pro WHERE p.id_cliente = '1'

Saludos.
GastorV lo probe recien y aparenta que funciona ok lo voy a testear mejor y cualquier cosa posteo pero creo que quedo bien.
Te doy las gracias por la ayuda!
Saludos.
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 11:35.