Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma consulta em um banco de dados que traz produtos
ID | Cod | Produto
1 | XX | produtoA
2 |yy | produtob
Depois preciso consultar em outro banco, usando este resultado na condição IN ('XX'; 'yy')
Colocando assim, ele escreve a palavra Array
Olha o código
$sqldestaques = "select codProduto from destaques where mes = '".date('m',$ontem)."'";
$row = mysql_query($sqldestaques);
$row5 = mysql_fetch_array($row);
Agora preciso fazer um Select como recuperar todas as linhas do primeiro Select colocando lado a lado com virgula.tu pode percorrer a array e jogar os dados numa var também tipo
$lista = "";
foreach($nome_array as $item){
$lista .= (($lista == "") ? $item : ", " . $item);
}
e aí usa $lista no lugar da array>
10 minutos atrás, marsolim disse:
tu pode percorrer a array e jogar os dados numa var também tipo
$lista = "";
foreach($nome_array as $item){
$lista .= (($lista == "") ? $item : ", " . $item);
}
e aí usa $lista no lugar da array
Deste jeito resolveu o problema de colocar tudo em linha, porém apareceu um novo problema, o resultado da primeira Query, me traz 3 registros, e no Array fica somente o ultimo codigo de produto, repetindo ele mesmo.e independente da quantidade de linhas, só traz 2 vezes na lista.eu não sei que jeito ta a fazer isso imagino que tens ou tiveste um while pra iterar sobre $row num fetch_array ou fetch_assoc, o esquema que postei era uma ideia pra adaptar a linha que começa com $lista dentro desse while
Resolvi com o WHILE, ficando assim:
Obrigado a todos
>
Citar
$sqldestaques = "select codProduto from destaques where mes = '".date('m',$ontem)."'";
$row7 = mysql_query($sqldestaques);
$lista = "";
while($row5 = mysql_fetch_array($row7)){
$item = $row5['codProduto'];
$lista .= (($lista=="") ? $item : "," .$item);
}
$sql4 = "SELECT * FROM WHERE TESTE IN ($lista)";
echo $sql4;
já tentou passar a array no IN: IN('$nome_da_array')