Foros del Web » Programando para Internet » PHP »

SELECT * FROM table WHERE campo IN $array

Estas en el tema de SELECT * FROM table WHERE campo IN $array en el foro de PHP en Foros del Web. Hola, Quiero ver los CDs que pertenecen a los artistas del vector $nombres. Tengo la sentencia: Código PHP: $claves  =  "select clave from realizados where nomartista in ($nombres)" ; print_r  ( $claves ...
  #1 (permalink)  
Antiguo 29/05/2008, 09:07
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
SELECT * FROM table WHERE campo IN $array

Hola,
Quiero ver los CDs que pertenecen a los artistas del vector $nombres.
Tengo la sentencia:

Código PHP:
$claves "select clave from realizados where nomartista in ($nombres)";
print_r ($claves); 
y por pantalla muestra...:

select clave from realizados where nomartista in (Array)

¿Cómo hago para que no aparezca array, sino los valores? porque así me devuelve cero filas la consulta

gracias amigo!
  #2 (permalink)  
Antiguo 29/05/2008, 09:10
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: SELECT * FROM table WHERE campo IN $array

Que tal scout_vlc, y como es que obtienes o formas el vector $nombres? publica el código que estas utilizando.




Saludos.
  #3 (permalink)  
Antiguo 29/05/2008, 09:31
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: SELECT * FROM table WHERE campo IN $array

Hola scout_vlc,

Tienes que usar implode:
Código PHP:
$claves "select clave from realizados where nomartista in ("implode"," $nombres ) .")";
print_r ($claves); 
Saludos.
  #4 (permalink)  
Antiguo 29/05/2008, 09:49
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: SELECT * FROM table WHERE campo IN $array

Hola,
he probado tal cual lo que me has dicho, y me sale en blanco la pantalla.
Si hago esto:

Código PHP:
$separado implode(","$nombres);
echo 
"<br>";
echo (
$separado);
echo 
"<br>";
$claves "select clave from realizados where nomartista in ($separado)";
print_r ($claves); 
me sale :


ALASKA ,ROBBIE WILLIAMS ,NATALIA
select clave from realizados where nomartista in ('ALASKA ,ROBBIE WILLIAMS ,NATALIA ')


Pero ¿cómo hago apra que cada nombre esté entre 'ALASKA', '...' para que funcione la sentencia SELECT?
Gracias
  #5 (permalink)  
Antiguo 29/05/2008, 10:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: SELECT * FROM table WHERE campo IN $array

necesitarias una funcion...

Código PHP:
function inin($array)
{
  
$out = array();
  foreach (
$array as $clave => $valor)
  {
    if (
is_numeric($valor))
    {
      
$out[] = $valor;
      continue;
    }
    
$valor htmlentites($valor); // seguro!
    
$out[] = "'$valor'"// entre comillas
  
}
  return 
join(','$out); // separados

ahora si daria.... 1,'pato',3,'volar' (por ejemplo)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 05:32.