Foros del Web » Programando para Internet » PHP »

error consulta

Estas en el tema de error consulta en el foro de PHP en Foros del Web. Tengo el siguiente código donde determino el empleado_no de cada empleado. Despues hago otra consulta donde quiero que para Empleado_no aparezca aparezaca apellido, oficio y ...
  #1 (permalink)  
Antiguo 25/04/2011, 01:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 72
Antigüedad: 13 años, 7 meses
Puntos: 0
error consulta

Tengo el siguiente código donde determino el empleado_no de cada empleado. Despues hago otra consulta donde quiero que para Empleado_no aparezca aparezaca apellido, oficio y dir.
El probelma es que no se como enlazar la segunda consulta:

emp_no= ???

SELECT apellido, oficio, dir from empleados where emp_no= $fila[0] :esto da error
SELECT apellido, oficio, dir from empleados where emp_no= $fila[emp_no]" da error.
Hice la misma consulta colocando manuamwnte y da bien. La idea es que se haga con el código
SELECT 'apellido', 'oficio', dir from empleados where emp_no= 7369;

Espero habreme explicado
Gracias


<?php

$conexion=mysql_connect("localhost","root","1234") ;
mysql_select_db("empresas",$conexion);
//$resul=mysql_query("SELECT * FROM empleados", $conexion);
$resul=mysql_query("SELECT emp_no FROM empleados", $conexion);
If (mysql_errno($conexion)!=0)
{ $mensaje= mysql_error($conexion);
Echo "$mensaje";
}

while($fila=mysql_fetch_array($resul)){
echo "<tr bgcolor = '#FFFF99'>";
echo "<td>$fila[emp_no] </td>";
echo "</tr>";


}


$NUMFILAS=mysql_num_rows($resul);
$resul1=mysql_query("SELECT apellido, oficio, dir from empleados where emp_no= $fila[0]", $conexion);
echo "$resul1";
If (mysql_errno($conexion)!=0)
{ $mensaje= mysql_error($conexion);
Echo "$mensaje";
}

Echo "<center><h2><b> Listado ";
Echo "<table width='500' border='0'>";
Echo "<tr bordercolor='CCFF00' bgcolor='#CFFF00'>
<td><b>APELLIDO</b></td>
<td><b>OFICIO</b></td>
<td><b>DIR</b></td>
</tr>";

while($fila1=mysql_fetch_array($resul1)){
echo "<tr bgcolor = '#FFFF99'>";
echo "<td>$fila1[apellido] </td>";
echo "<td>$fila1[oficio] </td>";
echo "<td>$fila1[dir] </td>";
echo "</tr>";
}


?>
  #2 (permalink)  
Antiguo 25/04/2011, 03:00
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: error consulta

Hola,

imagino que tendras error de sintaxis de mysql.

Y si pruebas a poner entra comillas simples....

Código PHP:
Ver original
  1. $resul1=mysql_query("SELECT apellido, oficio, dir from empleados where emp_no= '$fila[0]'", $conexion);

Espero que te sirva
Un saludo
  #3 (permalink)  
Antiguo 25/04/2011, 03:17
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 13
Respuesta: error consulta

Hola Murcielag56,

creo que el problema, o por lo menos esto lo tienes mal, es que despues del while:
while($fila=mysql_fetch_array($resul)){
echo "<tr bgcolor = '#FFFF99'>";
echo "<td>$fila[emp_no] </td>";
echo "</tr>";

ya has vaciado el contenido del resultado del query, por lo que en las siguientes lineas:
$NUMFILAS=mysql_num_rows($resul);
$resul1=mysql_query("SELECT apellido, oficio, dir from empleados where emp_no= $fila[0]", $conexion);

$NUMFILAS no se asocia a ningún número ya que $resul está vacio.
y $fila tambien.

Vamos que cuando el while acaba te vacia la pila del $result.
  #4 (permalink)  
Antiguo 25/04/2011, 03:27
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: error consulta

Hola,

No es que vacie $fila, es que sobreescribe hasta la ultima que obtiene del while, si que deberias poner el segundo bucle WHILE dentro del primero, para mostrar nobre, apellidos y demas POR empleado_no que tengas en la BBDD.

Código PHP:
Ver original
  1. while($fila=mysql_fetch_array($resul)){
  2. echo "<tr bgcolor = '#FFFF99'>";
  3. echo "<td>$fila[emp_no] </td>";
  4. echo "</tr>";
  5.  
  6.  
  7.  
  8.  
  9.  
  10. $NUMFILAS=mysql_num_rows($resul);
  11. $resul1=mysql_query("SELECT apellido, oficio, dir from empleados where emp_no= $fila[0]", $conexion);
  12. echo "$resul1";
  13. If (mysql_errno($conexion)!=0)
  14. { $mensaje= mysql_error($conexion);
  15. Echo "$mensaje";
  16. }
  17.  
  18. Echo "<center><h2><b> Listado ";
  19. Echo "<table width='500' border='0'>";
  20. Echo "<tr bordercolor='CCFF00' bgcolor='#CFFF00'>
  21. <td><b>APELLIDO</b></td>
  22. <td><b>OFICIO</b></td>
  23. <td><b>DIR</b></td>
  24. </tr>";
  25.  
  26. while($fila1=mysql_fetch_array($resul1)){
  27. echo "<tr bgcolor = '#FFFF99'>";
  28. echo "<td>$fila1[apellido] </td>";
  29. echo "<td>$fila1[oficio] </td>";
  30. echo "<td>$fila1[dir] </td>";
  31. echo "</tr>";
  32. }
  33.  
  34. }

Un saludo

Etiquetas: Ninguno
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:00.