Ayuda con extracción de datos en MySQL usando PHP

  • Autor Autor deskpro123
  • Fecha de inicio Fecha de inicio
deskpro123

deskpro123

Zeta
Verificación en dos pasos activada
Hola a todos, estoy super complicado con una parte de un script asi que nesecito una ayudita, ya tengo desde la 8PM de ayer y no he podido resolverlo...

Primero, en una tabla en la BDs tengo unos IDs, un ID por row ej:

Tabla: Noticias
ID / NOTICIA
1 - 6
2 - 15
3 - 5
4 - 88

y lo que quiero es que salga en fila la columna noticia asi: 6,15,5,88

La forma como lo tengo es asi:

Insertar CODE, HTML o PHP:
$rentables = mysql_query("SELECT * FROM noticias ORDER BY id");
while( $ren=mysql_fetch_array($rentables )){
$noticia=$ren['noticia'];
$noticia="$noticia,";

echo "$noticia";
}

y ahi me lo imprime asi: 6,15,5,88,

pero ahora viene la parte dificil....

como esa variable noticia la pongo dento de un mysql_query fuera del loop, ejemplo:

$results = mysql_query("SELECT * FROM otra_tabla WHERE id IN ($noticia) ORDER BY id);

Para que quede WHERE id IN(6,15,5,88)

Ayuda amigos porfavorrrrrr :sorrow::sorrow:
 
Buenas, es sencillo ... podrias ponerla dentro del primer while ... sino lo quieres hacer asi almacena la variable en un array y luego leelo.

$contenedor=array();
$contador=0;

$rentables = mysql_query("SELECT * FROM noticias ORDER BY id");
while( $ren=mysql_fetch_array($rentables )){
$contenedor[$contador]=$ren['noticia'];
$contador++;
}

for($i=0; $i<$contador; $i++)
{
$results = mysql_query("SELECT * FROM otra_tabla WHERE id IN ({$contenedor[$i]}) ORDER BY id);
.......
}



Otra solucion ....

$noticia="";
$rentables = mysql_query("SELECT * FROM noticias ORDER BY id");
while( $ren=mysql_fetch_array($rentables )){
$noticia.=$ren['noticia'].",";
}

$noticia=trim($noticia, ',');
$results = mysql_query("SELECT * FROM otra_tabla WHERE id IN ($noticia) ORDER BY id);
 
Última edición:
Buenas, es sencillo ... podrias ponerla dentro del primer while ... sino lo quieres hacer asi almacena la variable en un array y luego leelo.

$contenedor=array();
$contador=0;

$rentables = mysql_query("SELECT * FROM noticias ORDER BY id");
while( $ren=mysql_fetch_array($rentables )){
$contenedor[$contador]=$ren['noticia'];
$contador++;
}

for($i=0; $i<$contador; $i++)
{
$results = mysql_query("SELECT * FROM otra_tabla WHERE id IN ({$contenedor[$i]}) ORDER BY id);
.......
}



Otra solucion ....

$noticia="";
$rentables = mysql_query("SELECT * FROM noticias ORDER BY id");
while( $ren=mysql_fetch_array($rentables )){
$noticia.=$ren['noticia'].",";
}

$noticia=trim($noticia, ',');
$results = mysql_query("SELECT * FROM otra_tabla WHERE id IN ($noticia) ORDER BY id);

Joder amigo, me has sacado de un atasco enorme, de verdad muchisisisisimas gracias...Ahora lo voy a probar 🙂

- - - Actualizado - - -
[MENTION=3059]juan25[/MENTION] amigo he optado por usar el ejemplo 2:

Insertar CODE, HTML o PHP:
$noticia="";
$rentables = mysql_query("SELECT * FROM noticias ORDER BY id");
while( $ren=mysql_fetch_array($rentables )){
$noticia.=$ren['noticia'].",";
}

$noticia=trim($noticia, ',');
$results = mysql_query("SELECT * FROM otra_tabla WHERE id IN ($noticia) ORDER BY id

y me pregunto si la variable $noticia=""; que sale al principio tiene que ir ahi? y porque?
 
No es necesario pero yo siempre lo hago por limpieza, me garantizo que esta a null
 
Atrás
Arriba