Foros del Web » Programando para Internet » PHP »

Consulta entre dos tablas..

Estas en el tema de Consulta entre dos tablas.. en el foro de PHP en Foros del Web. Buenas la verdad es primera vez que intento esto, ojala me puedan ayudar para salir del enredo que tengo... Bueno pues resulta y pasa que ...
  #1 (permalink)  
Antiguo 14/04/2008, 09:53
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Consulta entre dos tablas..

Buenas la verdad es primera vez que intento esto, ojala me puedan ayudar para salir del enredo que tengo...
Bueno pues resulta y pasa que hice un query de consulta para ver lo que ingrese en la base de datos, ahora viene el problema hasta ahi todo bien, ahora necesito hacer otra consulta pero de la consulta que hice como asi?? ya explico con detalles

tengo una tabla llamada Curso, de los cuales hice esa consulta normalita me la mostro y todo el formulario quedo asi:

codigo_curso ; nombre_curso
1234 ; Matematica aplicada

y otra tabla llamada Instancia_curso

codigo del curso ; codigo de la seccion
1234 ; A
1234 ; B

asi sucesivamente...
pero quiero que aparezca una opcion donde yo pueda enlazar las dos

columna 1 ; codigo_curso ; nombre_curso
ver ; 1234 ; Matematica aplicada
ver ; 9876 ; Biologia

Donde esta la opcion ver quiero que aparezca instancia_curso (la otra tabla, sea en otra hoja, sea conun href por eso la coloque...), pero ojo que curso me sale en una consulta entonces quiero otra consulta sobre esa consulta sera que se puede....

Le agradezco al que me ayude porque estoy es embolatado y quiero que me ayuden... gracias
  #2 (permalink)  
Antiguo 14/04/2008, 10:20
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Consulta entre dos tablas..

Creo que puede ser así: supongamos que listas los cursos de esta forma.

Código PHP:
while($datos mysql_fetch_array($resultado))
{
       echo 
$datos['codigo_curso'];
       echo 
$datos['nombre_curso'];
       echo 
"<a href = instancias.php?id_curso=$datos[codigo_curso]>Ver</a>"


Luego en tu página instancias.php haces la respectiva consulta y listas de la tabla instancia_curso los datos que necesitas, recoges con GET el id_curso y listo.
Código PHP:
$icurso = (int) $_GET['id_curso']; 

Saludos.
  #3 (permalink)  
Antiguo 16/04/2008, 10:05
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Consulta entre dos tablas..

Que mas compañero
me sale error al momento de yo hacer lo que me dices, te coloco el codigo para que veas como lo estoy haciendo para ver como esta...gracias
Este es el primer formulario
Código PHP:
<html>
<head>
<title>..::Busqueda::..</title>
<body>
<center>
<font color="#3366FF">
<H1><b>Revision de Cursos </b></H1>
</font>
<form name="nada" method="post" action="1.php">


<table border="1">    
        
            <td><b>Codigo:</td>
            <td><input type="text" name="codigo" size="10"></td>
            
        </tr>
        
    
</table>
<table>
<tr align="center">
     <td><input type="submit" value="enviar"></td>
    
 </tr>    
</table>
<hr />


<table border="1" width="600"> 
 
    <tr>
        <td align="center"><font color="#0033FF"><b>Item #1</font></td>
        <td align="center"><font color="#0033FF"><b>Codigo del Curso</font></td>
        <td align="center"><font color="#0033FF"><b>Nombre del Curso</font></td>
    </tr>
    

<?


 $conex
=odbc_connect("SNIES","","");
 
   if(!
$conex)
   { echo 
'<h1>No se pudo establecer conexion a la base de datos</h1>';
     exit();
   }else
   { echo 
''// esto si quiers lo quitas
   
}

 if(!empty(
$codigo)){
 
         
$consultaSQL "SELECT curso_code, curso_nombre FROM public_curso WHERE nbc_code = '$codigo';";
        
$resultado odbc_do($conex$consultaSQL);
        
$num_campos odbc_num_fields($resultado);
        
$num_filas 0;

        
        while (
odbc_fetch_row($resultado)){
                
$num_filas ++;
                echo 
"<Tr>";
                echo 
"<td align='center'>";
                echo 
"<font color='#0033FF'>";
                echo 
$resultado['codigo_curso']; 
                echo 
$resultado['nombre_curso']; 
                   echo 
"<a href = 2.php?id_curso=$datos[codigo_curso]>Ver</a></td>" ;
            for(
$i=1;$i<=$num_campos;$i++){
                    echo 
"<td align='center'>";
                if (
odbc_result($resultado,$i))
                        echo 
odbc_result($resultado,$i);
                        echo 
"</td>";
                        
            }
                echo 
"</tr>"; echo "\n";
        }
    echo 
"</table> \n";
}
 else{
 
        
?>        
        
<?
        
}
        
odbc_close ($conex);
?>

</form>

</center>
</body>
</html>
Este es el segundo formulario que recibe el metodo GET...pero no me hace nada nose que estare haciendo mal..

Código PHP:

<html>
<head>
<title>..::Busqueda::..</title>
<body>
<center>
<font color="#3366FF">
<H1><b>Revision de Cursos </b></H1>
</font>

<form name="nada" method="get" action="1.php">

<?
$id_curso 
= (int) $_GET['id_curso'];  




$conex=odbc_connect("SNIES","jbolaño","123456");
 
   if(!
$conex)
   { echo 
'<h1>No se pudo establecer conexion a la base de datos</h1>';
     exit();
   }else
   { echo 
'sisa'// esto si quiers lo quitas
   
}

 if(!empty(
$id_curso)){
 
         
$consultaSQL "SELECT * FROM public_instancia_curso WHERE curso_code='".$id_curso ."'";
        
$resultado odbc_do($conex$consultaSQL);
        
        if(
odbc_fetch_row($resultado)){
            
$curso_code odbc_result($resultado,4);
            
$cod_seccion odbc_result($resultado,5);
            
            
            echo 
"<tr align ='center'><td>Codigo del Curso:</td><td>";
            echo 
"<input type='text' name='curso_code' value='$curso_code'";
            echo 
"size=2></td><td>Codigo Seccion:</td>\n<td>";
            echo 
"<input type='text' name='cod_seccion' value='$cod_seccion'";
            echo 
"size=10></td>\n<tr>";
        }
        else
            {
            echo 
"<tr>";
            echo 
"<td colspan = 2><B><center>curso_code:";
            echo 
$curso_code"</B></center></td></tr>";
            echo 
"<tr><td colspan=2><B><center>no existente";
            echo 
"</center></B></td></tr>";
        }
}
    
?>

</form>
</body>
</html>
  #4 (permalink)  
Antiguo 16/04/2008, 10:55
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Consulta entre dos tablas..

Has probado relacionar las 2 tablas en la consulta??

Código PHP:
$q mysql_query("SELECT * FROM cursos c INNER JOIN public_curso pc ON pc.codigo=c.codigo ORDER BY c.nombre_curso");
while (
$a mysql_fetch_array($q))
  {
  
//Codigo a presentar por cada resultado
  

  #5 (permalink)  
Antiguo 16/04/2008, 14:32
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Consulta entre dos tablas..

Esta mal tu código no estas definiendo la variable que almecene el array de la consulta en este caso $datos prueba de esta forma

Código PHP:
while ($datos odbc_fetch_row($resultado)){ 
                
$num_filas ++; 
                echo 
"<Tr>"
                echo 
"<td align='center'>"
                echo 
"<font color='#0033FF'>"
                echo 
$datos['codigo_curso'];  
                echo 
$datos['nombre_curso'];  
                   echo 
"<a href = 2.php?id_curso=$datos[codigo_curso]>Ver</a></td>" 
            for(
$i=1;$i<=$num_campos;$i++){ 
                    echo 
"<td align='center'>"
                if (
odbc_result($resultado,$i)) 
                        echo 
odbc_result($resultado,$i); 
                        echo 
"</td>"
                         
            } 
Saludos.
  #6 (permalink)  
Antiguo 16/04/2008, 16:35
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Consulta entre dos tablas..

lo que tu me dijieste probe pero todavia no me sale en la barra de direccion cuando accedo a la otra pagina me sale es 2.php? y no me sale nada... si tu lo pruebas con un ejemplo tuyo propio y me dices como lo hicistes te lo agradezco....y a los demas personas tambien, porque no me sale la parte esa del hypervinculo..
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 00:10.