Foros del Web » Programando para Internet » PHP »

consulta mysql en array

Estas en el tema de consulta mysql en array en el foro de PHP en Foros del Web. buenas, estoy guardando unas consultas en un array, y luego quiero mirar con una consulta a la bd todo lo que hay dentro del array, ...
  #1 (permalink)  
Antiguo 18/10/2008, 04:45
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Exclamación consulta mysql en array

buenas, estoy guardando unas consultas en un array, y luego quiero mirar con una consulta a la bd todo lo que hay dentro del array, me han dicho que se hace con un SQL IN... EJEMPLO:
SELECT * FROM "ALGO" WHERE "TABLA" IN ('NUMERO1','NUMERO2'......

pues si pongo whre "tabla" in ('$miarray' ) no me funciona... alguien sabe porque¿

micodigo:
Código PHP:

if (!isset($_SESSION['vaques_cerca'])) $_SESSION['vaques_cerca'] = array();
         
//si és la primera consulta creemos el array.
        
$_SESSION['vaques_cerca'][$_POST['vaca']] = true//relleno el array con los numeros entrado.......
        
print_r($_SESSION['vaques_cerca']);// xivatoo...
    
 
$arrayvaques=array();
 
$arrayvaques=$_SESSION['vaques_cerca'];
 
print_r($_SESSION['vaques_cerca']);

        
$sql " SELECT *
                  FROM herd
                 WHERE herd_id in ('$arrayvaques')
                 LIMIT 0 , 30 "

esto es el codigo i lo unico que falla es el ('$arrayvaques') que veo que no se lee bien, si le pongo manual los numeros si ke va... ('num1', 'num.2'etc

gracias

Última edición por bellleti; 18/10/2008 a las 10:17 Razón: no funciona alguien me puede ayudar'¿
  #2 (permalink)  
Antiguo 18/10/2008, 04:49
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Respuesta: consulta mysql en array

No lo he probado, pero al ser una variable, $arrayvaques debe estar sin comillas, sino te lo toma como string, en vez de como variable.

Un saludo
  #3 (permalink)  
Antiguo 18/10/2008, 10:22
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Pregunta Respuesta: consulta mysql en array

Cita:
Iniciado por Manuellama Ver Mensaje
No lo he probado, pero al ser una variable, $arrayvaques debe estar sin comillas, sino te lo toma como string, en vez de como variable.

Un saludo

hola! sin comillas tampoco funciona. la consulta $sql sale asi:
SELECT * FROM herd WHERE herd_id in (Array) LIMIT 0 , 30
pero no lee bien

a ver quien me ayuda, la cosa esta en hacer una consulta ala base de datos y comparar en un array con "sql in"
ejemplo
Código PHP:
select from Tabla where campo1 IN ($array rellenado anteriormente).; 
gracias! :P
  #4 (permalink)  
Antiguo 18/10/2008, 10:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: consulta mysql en array

Hola bellleti,

Prueba eso:
Código php:
Ver original
  1. $sql = " SELECT *
  2.                  FROM herd
  3.                 WHERE herd_id in ('" . implode( ",", $arrayvaques ) . "')
  4.                 LIMIT 0 , 30 ";

Saludos.
  #5 (permalink)  
Antiguo 18/10/2008, 10:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: consulta mysql en array

la explicación es sencilla....

un array cuando se transforma en cadena no se une "mágicamente" con comas...

por eso si imprimes:
Código PHP:
$foo = array(1,3,5);

echo 
$foo// Array 
sale Array ya que no hay transformación alguna... la opción que te da GatorV es lo adecuado, no mas...


no olvides consultar la documentación, es malo estar atascado y hacer todo a prueba y error... infórmate

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 19/10/2008, 04:53
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Exclamación Respuesta: consulta mysql en array

Cita:
Iniciado por GatorV Ver Mensaje
Hola bellleti,

Prueba eso:
Código php:
Ver original
  1. $sql = " SELECT *
  2.                  FROM herd
  3.                 WHERE herd_id in ('" . implode( ",", $arrayvaques ) . "')
  4.                 LIMIT 0 , 30 ";

Saludos.
hola Gator!! y gracias! mira he hecho esto pero... nose si no guardo bien el array pero me sale esto:

Primero el codigo que tengo:

Código PHP:
if (!isset($_SESSION['vaques_cerca'])) $_SESSION['vaques_cerca'] = array();
         
//si no esta iniciat la sessio vaques_cerca, creem l'array
        
$_SESSION['vaques_cerca'][$_POST['vaca']] = true//omplim larray amb els numeros entrats
        
     
 
$arrayvaques=implode","$_SESSION['vaques_cerca']);

 echo 
"a veure que te limplode, $arrayvaques";//ESTO IMPRIME 1,1,1..ETC

        
$sql " SELECT *
                  FROM herd
                 WHERE herd_id in  $arrayvaques 
                 LIMIT 0 , 30 "

                 echo 
$sql;//ESTO DA PUES TODO BIEN PERO 1,1,1 Y NO LOS NUMEROS QUE LE ENTRO... :( 
SELECT * FROM herd WHERE herd_id in 1,1,1 LIMIT 0 , 30

creo..que no guardo bien el array?? o porque?? te passo un print_r del array que se va creando a medida que entramos los numeros:556,342,33...

Array ( [556] => 1 [342] => 1 [33] => 1 )
  #7 (permalink)  
Antiguo 19/10/2008, 04:57
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: consulta mysql en array

guarda los datos del post como claves, por eso cuando usas el implode te queda todo a uno.
Hazlo asi:

Código PHP:
 $_SESSION['vaques_cerca'][] = $_POST['vaca']; //omplim larray amb els numeros entrats 
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #8 (permalink)  
Antiguo 19/10/2008, 05:11
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
De acuerdo Respuesta: consulta mysql en array

Cita:
Iniciado por Tokkara Ver Mensaje
guarda los datos del post como claves, por eso cuando usas el implode te queda todo a uno.
Hazlo asi:

Código PHP:
 $_SESSION['vaques_cerca'][] = $_POST['vaca']; //omplim larray amb els numeros entrats 
si, tienes razon! ya me funciono a la perfeccion! Muchas gracias!!! asi eso que yo hacia... cuando se usa?
$_SESSION['vaques_cerca'][$_POST['vaca']]=true; eso que has dicho que asi se guarda como post...

me puedes explicar la diferencia?

y muchas gracias por la ayuda :)
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 06:14.