Comunidad de diseño web y desarrollo en internet online

Hacer un query con un array

Citar            
MensajeEscrito el 12 Oct 2007 05:12 pm
Hola amigos, es casi que la continuación del post que hice del array que tiene datos repetidos, ya funciona, pero ahora este array deseo que haga un query:

Código :

$coordinacion = mysql_query ("SELECT * FROM $tbusuario WHERE dependencia = '".$_GET["dependencia"]."' AND descripcion_categoria = '".$_GET["usuario"]."' ") or die ("Query invalido");
while($row=mysql_fetch_array($coordinacion)){
   $dato[] = $row[nombre];
}

$datos = array_unique($dato);
$tabla = $_GET['tabla'];
//Hasta aqui todo perfecto
//Aqui meto el array en donde vienen los usuarios sin contener repeticiones en ellos.
$resultado= mysql_query("SELECT * FROM $tabla WHERE usuario_bd= ".$datos." ") or die ("Query invalido"); 
while ($registro = mysql_fetch_array($resultado)) {
....


Si me pueden ayudar, les agradeceria mucho.

Saludos.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Oct 2007 05:26 pm
Estas comparando usuario_bd contra "Array", que es a lo que se convierte un array cuando se pasa a cadena directamente. Supongo que quieres seleccionar todos los usuarios que tenga ese nombre. La correcion seria esta:

$coordinacion = mysql_query ("SELECT * FROM $tbusuario WHERE dependencia = '".$_GET["dependencia"]."' AND descripcion_categoria = '".$_GET["usuario"]."' ") or die ("Query invalido");

while($row=mysql_fetch_array($coordinacion)){

$dato[] = "'". $row[nombre] . "'"; // #1

}



$datos = array_unique($dato);

$tabla = $_GET['tabla'];

//Hasta aqui todo perfecto

//Aqui meto el array en donde vienen los usuarios sin contener repeticiones en ellos.
$slDatos = implode(",", $datos);#2
$resultado= mysql_query("SELECT * FROM $tabla WHERE usuario_bd IN ($slDatos) ") or die ("Query invalido"); #3

while ($registro = mysql_fetch_array($resultado)) {


#1: Inserto los nombres en el array asi: 'Maikel' 'Dano', es decir con comillas simples.
#2: Luego de que tengo este array: array('Maikel', 'Dano') lo convierto en una cadena asi: 'Maikel','Dano'
#3: El sql final quedaria asi: SELECT * FROM $tabla WHERE [b]usuario_bd IN ('Maikel','Dano')

Sigo insistiendo que estas procesando mas de lo necesario, en sql puedes resolver eso

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Oct 2007 06:18 pm
Maikel, te agradesco mucho la ayuda, tal cual como me comentas puede que procese más, pero fijate que en la tabla de usuarios, el usuario X puede tener varios cargos: coordinador, coordinado de area, y a su vez coordinador de departamentoA, coordinador de departamentoB (ejemplo).
Cuando quiero mandar a imprimir toda la coordinacion, me manda el registro de el de su area y departamentos, como tiene 4 cargos, lo que me hacia el php era que me imprimia 4 veces a este usuario X, con unique, imprime una sola vez sus registros.
Te agradesco mucho Maikel la ayuda.

Saludos.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Oct 2007 06:25 pm
Como dice Maikel, con SQL se puede. Mira algo así necesitas:

Código :

$sql = "SELECT * FROM $tbusuario AS User
INNER JOIN $tabla AS Target ON Target.usuario_bd=User.nombre
WHERE User.dependencia = '".$_GET["dependencia"]."' 
AND User.descripcion_categoria = '".$_GET["usuario"]."'";
$resultado= mysql_query($sql) or die ("Query invalido"); #3

while ($registro = mysql_fetch_array($resultado)) {


Nota es la idea, solo prueba y corrije, pero con esa idea resuelves todo el php que tienes.


saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 12 Oct 2007 06:33 pm
Lo pongo en práctico, muchas gracias amigos.

Saludos.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.