Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta sencilla que no consigo

Estas en el tema de Consulta sencilla que no consigo en el foro de Mysql en Foros del Web. Es algo bastante sencillo creo, ya que he realizado consultas mas complejas, pero el caso es que llevo ya bastante tiempo dandole vueltas y no ...
  #1 (permalink)  
Antiguo 09/11/2010, 13:42
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Consulta sencilla que no consigo

Es algo bastante sencillo creo, ya que he realizado consultas mas complejas, pero el caso es que llevo ya bastante tiempo dandole vueltas y no hay manera!

Imaginemos una tabla, por ejemplo EMPLEADOS

En dicha tabla tengo varios campos pero solo nos fijaremos en 2 de ellos, id_empleado y departamento.


Yo lo que quiero es que sabiendo el departamento, sacar por pantalla una lista de todos los ids de los empleados de dicho departamento, imagino que es sencillo, pero no se porque ando espeso y no hay manera.


Supongo que sea algo asi:

$sql= "SELECT id_empleado FROM empleados WHERE departamento=$departamento";
$consulta= mysql_query($sql);

y aqui me quedo atascado, he probado con mysql_fetch_array como hago otras veces, haciendo bucles con while, bucles con for (poniendo como salida del bucle cuando el contador llega a una variable llamada $numero_empleados que ya conozco de antemano), y no lo consigo.

Alguna ayuda por favor, porque se que es algo sencillo pero me ando desesperando.
  #2 (permalink)  
Antiguo 09/11/2010, 14:45
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Consulta sencilla que no consigo

$sql= "SELECT id_empleado FROM empleados WHERE departamento='".$departamento."' ";
$consulta= mysql_query($sql);
probaste asi?
  #3 (permalink)  
Antiguo 09/11/2010, 18:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Consulta sencilla que no consigo

el amigo te indico la solucion pero como concejo cuando estes desarrollando tus aplicaciones depura la consulta para que te muestre el error de mysql ej
Código PHP:
Ver original
  1. /*lo que tengas arriba*/
porque lo mas seguro es que te dijera que no conoce el campo con el nombre del departamento que estas indicando de la manera que lo estabas haciendo ya que los string van entre comillas 'string' saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 11/11/2010, 03:43
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Consulta sencilla que no consigo

Wenas, ese no es mi error, se me olvido poner las comillas al escribir la consulta de mysql aca, lo que no consigo es mostrar por pantalla todos los resultados por medio de un bucle......

Tengo lo siguiente para tratar de mostrar los datos, pero no hay manera de que me funcione....


Código:
for ($i=0;$i<$numempleados;$i++)
   {
	echo ("$consulta[$i]<br>");
   }

Gracias a los dos por vuestra ayuda, no se si influira algo que el departamento es un numero no un string.....

Última edición por MARTIN_LAW; 11/11/2010 a las 03:50
  #5 (permalink)  
Antiguo 11/11/2010, 03:50
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia
Mensajes: 781
Antigüedad: 14 años, 2 meses
Puntos: 39
Respuesta: Consulta sencilla que no consigo

Hola Prueba con el foreach

http://php.net/manual/es/control-structures.foreach.php

Espero que te sirva
__________________

Evidalia Hosting

Hosting, Resellers y Servidores VPS
  #6 (permalink)  
Antiguo 11/11/2010, 03:58
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Consulta sencilla que no consigo

Hola, no entiendo porque deberia usar foreach en este caso.....

El bucle mio con for funciona correctamente, el problema me viene al intentar mostrar el contenido de la consulta, que me deberia tener almacenados los id_empleados de todos los del departamento solicitado.....


Y si uso mysql_fetch_array, al imprimir el contenido, solo me imprime uno de las ids del empleado.....


Podrias explicarme un poco porque usar foreach?

gracias


PD: la consulta la realizo bien, ya que imprimo por pantalla la consulta y me sale lo siguiente:

SELECT id_empleado FROM empleados WHERE departamento='21' ;


(21 en ese caso, dependiendo en que departamento pinche me sale el numero de departamento correspondiente)

Última edición por MARTIN_LAW; 11/11/2010 a las 04:03
  #7 (permalink)  
Antiguo 11/11/2010, 04:07
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia
Mensajes: 781
Antigüedad: 14 años, 2 meses
Puntos: 39
Respuesta: Consulta sencilla que no consigo

Hola

mysql_fetch_array tambien le debe servir, ¿ pero que código tiene dentro del bucle?

Pon antes del bucle print_r http://php.net/manual/es/function.print-r.php para que te imprima toda la array

Así puede ir detectando por donde puede estar el fallo
__________________

Evidalia Hosting

Hosting, Resellers y Servidores VPS
  #8 (permalink)  
Antiguo 11/11/2010, 04:11
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Consulta sencilla que no consigo

He encontrado el problema con print_r.

$sql = "SELECT id_empleado FROM empleados WHERE departamento='".$departamento."' ;";
$consulta = mysql_query($sql);
$datos = mysql_fetch_array($consulta);


Si uso print_r me sale lo siguiente:

print_r ($consulta)
Resource id #5


print_r ($datos)
Array ( [0] => 259 [id_empleado] => 259 )


es decir, solo me almacena un valor, en vez de almacenarme todos los ids de empleado.....

A ver ahora si sirve de ayuda esto.




SOLUCIONADO:

Al final lo he conseguido optando por este camino:

$sql = "SELECT * FROM empleados WHERE departamento='".$departamento."' ;";
$consulta = mysql_query($sql);


Y a la hora de mostrar los id de los empleados:

while ($row=mysql_fetch_array($consulta))
{
echo ("<br>".$row['id_empleado']."<br>");
}



Gracias por la ayuda, al final era super sencillo, pero ya se sabe que a veces cuando te atascas....

Última edición por MARTIN_LAW; 11/11/2010 a las 04:25
  #9 (permalink)  
Antiguo 11/11/2010, 04:57
 
Fecha de Ingreso: septiembre-2010
Ubicación: Valencia
Mensajes: 781
Antigüedad: 14 años, 2 meses
Puntos: 39
Respuesta: Consulta sencilla que no consigo

Me alegro que lo tengas solucionado, lo de print_r es muy útil para ver que almacena
__________________

Evidalia Hosting

Hosting, Resellers y Servidores VPS

Etiquetas: sencilla
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:22.