Foros del Web » Programando para Internet » PHP »

problema con consulta

Estas en el tema de problema con consulta en el foro de PHP en Foros del Web. Hola, tengo tres tablas diferente: usuario, evento_usuario y academico, necesito hacer una consulta que me arroje resultados de las tres tablas al mismo tiempo, para ...
  #1 (permalink)  
Antiguo 14/11/2004, 17:39
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
problema con consulta

Hola, tengo tres tablas diferente: usuario, evento_usuario y academico, necesito hacer una consulta que me arroje resultados de las tres tablas al mismo tiempo, para lo cual pense en hacer dos consultas, una que me tome usuario y evento_usuario por el campo cedula y la otra consulta que me de academico los registros que coincidan con el resultado obtenido en la consulta anterior que estan en $row["cedula"];

para eso he hecho esto:

Código PHP:

<?
$lina
=$_REQUEST['nombre_evento'];

include (
'.../lebasi444.php');
echo 
$lina;


$cons"SELECT usuario.cedula,usuario.codigo,usuario.nombre,usuario.apellidos,usuario.telefono,usuario.movil,usuario.email, evento_usuario.Observaciones, evento_usuario.pago from usuario INNER JOIN evento_usuario ON usuario.cedula = evento_usuario.cedula WHERE evento = '".$lina."' order by Observaciones, nombre, pago";


?>
<table width="75%"  border="1">
<?
if(mysql_num_rows($result)>0){

while (
$row=mysql_fetch_array($result))
            
            
            
{
    
$cons2="SELECT programa from academico WHERE codigo = '".$row['cedula']."'";
            
$resultado2=mysql_query($cons2) or die("error en consulta 2 <b>$cons2</b> :".mysql_error());
            while(
$row2mysql_fetch_array($resultado2));{
    {
    echo 
'<tr><td>'.$row["cedula"].'</td>';
    echo 
'<td>'.$row["codigo"].'</td>';
    echo 
'<td>'.$row["nombre"].'</td>';
    echo 
'<td>'.$row["apellidos"].'</td>';
    echo 
'<td>'.$row["telefono"].'</td>';
    echo 
'<td>'.$row["movil"].'</td>';
    echo 
'<td>'.$row["email"].'</td>';
    echo 
'<td>'.$row["Observaciones"].'</td>';
    echo 
'<td>'.$row["pago"].'</td>';
    echo 
'<td>'.$row2["programa"].'</td></tr>';
    echo 
'<tr><td>'.$row2["programa"].'</td></tr>';
                                                        }
    }
}
}else {
echo 
"No hay Datos";
}


?>
pero resulta que ahora no me muestra ningun dato, es decir antes de agregar $cons2 todo funcionaba perfecto, pero ahora no me arroja ningun resultado, que puede estar pasando?


agradezco todo tipo de ayuda
__________________
Say no more.......
  #2 (permalink)  
Antiguo 14/11/2004, 17:50
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Y donde obtienes la variable $result?
O sea... estás poniendo la línea
Código PHP:
$result mysql_query($cons) or die("error en consulta <b>$cons</b> :".mysql_error()); 
??
Pon la línea
Código PHP:
error_reporting(E_ALL); 
Al comienzo de todo para que se te muestren mensajes de error y descubras más fácilmente lo que esté fallando.

Saludos
  #3 (permalink)  
Antiguo 14/11/2004, 20:19
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
nada, le puse esa linea y no me reporta ningun error, y $cons resulta del select que defino en las primeras lineas del script
__________________
Say no more.......
  #4 (permalink)  
Antiguo 14/11/2004, 20:29
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Lo que yo te preguntaba es en qué parte asignas valor a $result.
Aunque si dices que no te muestra mensaje de error, es porque sí existe.
Saludos
  #5 (permalink)  
Antiguo 14/11/2004, 20:50
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
perdon, pero creo que borre esa linea al eliminar los comentarios que tengo, pero aqui pongo todo mi codigo para ver:

Código PHP:
<?
error_reporting
(E_ALL); 

$lina=$_REQUEST['nombre_evento'];

include (
'.../lebasi444.php');
echo 
$lina;


$cons"SELECT usuario.cedula,usuario.codigo,usuario.nombre,usuario.apellidos,usuario.telefono,usuario.movil,usuario.email, evento_usuario.Observaciones, evento_usuario.pago from usuario INNER JOIN evento_usuario ON usuario.cedula = evento_usuario.cedula WHERE evento = '".$lina."' order by Observaciones, nombre, pago";


//$cons="SELECT usuario.cedula,usuario.codigo,usuario.nombre,usuario.apellidos,usuario.telefono,usuario.movil,usuario.email, evento_usuario.Observaciones, evento_usuario.pago FROM  usuario,usuarioevento, academico WHERE  usuario.cedula = evento_usuario.cedula  academico.codigo=usuario.codigo evento = '".$lina."' order by pago,Observaciones, nombre";

//$cons="SELECT * from evento_usuario";
$result=mysql_query($cons) or die("error en consulta <b>$cons</b> :".mysql_error());
?>
<table width="75%"  border="1">
<?
if(mysql_num_rows($result)>0){

while (
$row=mysql_fetch_array($result))
            
            
            
{
    
$cons2="SELECT programa from academico WHERE codigo = '".$row['cedula']."'";
            
$resultado2=mysql_query($cons2) or die("error en consulta 2 <b>$cons2</b> :".mysql_error());
            while(
$row2mysql_fetch_array($resultado2));{
    {
    echo 
'<tr><td>'.$row["cedula"].'</td>';
    echo 
'<td>'.$row["codigo"].'</td>';
    echo 
'<td>'.$row["nombre"].'</td>';
    echo 
'<td>'.$row["apellidos"].'</td>';
    echo 
'<td>'.$row["telefono"].'</td>';
    echo 
'<td>'.$row["movil"].'</td>';
    echo 
'<td>'.$row["email"].'</td>';
    echo 
'<td>'.$row["Observaciones"].'</td>';
    echo 
'<td>'.$row["pago"].'</td>';
    echo 
'<td>'.$row2["programa"].'</td></tr>';
    echo 
'<tr><td>'.$row2["programa"].'</td></tr>';
                                                        }
    }
}
}else {
echo 
"No hay Datos";
}


?>
__________________
Say no more.......
  #6 (permalink)  
Antiguo 14/11/2004, 21:31
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
¿Qué quiere decir que no te arroja ningún resultado?
¿Te muestra el mensaje "no hay datos"?

Si es así, prueba a hacer la misma consulta en phpMyAdmin (o similar) a ver si te da resultados. Prueba con varias de las consultas interiores.
Si te da resultados, entonces asegúrate que la variable $lina está tomando el valor que quieres. (echo $lina).

Saludos
  #7 (permalink)  
Antiguo 14/11/2004, 23:22
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
no, a ver, lo que me arroja es algo como si me fuera a presentar los datos pero a la hora de la verdad no me presenta nada, es decir, no me presenta el aviso de "No hay datos", si no que me presenta la hoja como me mostraba los resultados antes de hacer el intento que estoy haciendo, en pocas palabras, las consultas deben estar bien, yo creo que mas bien el problema es en el uso de los arrays o algo asi...
__________________
Say no more.......
  #8 (permalink)  
Antiguo 14/11/2004, 23:32
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Iniciado por el_cesar
(...) las consultas deben estar bien
Para despejar esa pequeña duda ya te dije que lo compruebes haciando las consultas directamente al mysql (desde la línea de comandos o desde phpMyAdmin o similar)...
Además, haz pruebas imprimiendo $row['cedula'] dentro del while.

saludos
  #9 (permalink)  
Antiguo 15/11/2004, 15:23
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
lo voy a probar a ver que pasa
__________________
Say no more.......
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 22:21.