Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kakaroto1309

Foreach com Array

Recommended Posts

Porque isso está gerando um Warning?

$clientes = mysql_query("
SELECT
CLI.nmFantasia AS 'Cliente'
FROM tbVendaItem VNI
LEFT JOIN tbVenda VND
ON VNI.idVenda = VND.ID
LEFT JOIN tbCatalogo CAT
ON VNI.idCatalogo = CAT.ID
LEFT JOIN tbProduto PRO
ON CAT.idProduto = PRO.ID
LEFT JOIN tbMaterial MAT
ON CAT.idMaterial = MAT.ID
LEFT JOIN tbCor COR
ON CAT.idCor = COR.ID
LEFT JOIN tbEstampa EST
ON CAT.idEstampa = EST.ID
LEFT JOIN tbClientes CLI
ON VND.idCliente = CLI.ID
WHERE
VND.idColecao = '$var_idColecao' AND
LEFT(VND.nrPedido,1) = '$var_txTipo' AND
CLI.txPais = '$var_txPais' AND
LEFT(PRO.nrReferencia,2) = 'BK'
GROUP BY CLI.nmFantasia
ORDER BY CLI.nmFantasia
");

//Foreach
foreach ($clientes as $CLI) ----- Linha 78
{
Código a ser executado
}

Erro gerado:

 

Warning: Invalid argument supplied for foreach() in /home/public_html/report3.php on line 78

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! A sua variável $clientes não é um array gerado. Tente assim:

$clientes = mysql_query("
SELECT
CLI.nmFantasia AS 'Cliente'
FROM tbVendaItem VNI
LEFT JOIN tbVenda VND
ON VNI.idVenda = VND.ID
LEFT JOIN tbCatalogo CAT
ON VNI.idCatalogo = CAT.ID
LEFT JOIN tbProduto PRO
ON CAT.idProduto = PRO.ID
LEFT JOIN tbMaterial MAT
ON CAT.idMaterial = MAT.ID
LEFT JOIN tbCor COR
ON CAT.idCor = COR.ID
LEFT JOIN tbEstampa EST
ON CAT.idEstampa = EST.ID
LEFT JOIN tbClientes CLI
ON VND.idCliente = CLI.ID
WHERE
VND.idColecao = '$var_idColecao' AND
LEFT(VND.nrPedido,1) = '$var_txTipo' AND
CLI.txPais = '$var_txPais' AND
LEFT(PRO.nrReferencia,2) = 'BK'
GROUP BY CLI.nmFantasia
ORDER BY CLI.nmFantasia
");
$array = mysql_fetch_array($clientes);


foreach ($array as $CLI)
{
//Código a ser executado
}

Espero ter Ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu suspeito que seja isso, mais não to conseguindo transformar em array.

 

Tentei da sua maneira, até da certo, mais ele só faz para o primeiro cliente que retorna no select. Para os demais não é feito.


E o select separado, traz muitos clientes, não somente 1.

Compartilhar este post


Link para o post
Compartilhar em outros sites
No exemplo abaixo, enquanto houver registros a serem retornados, será armazenado na variável $array substituindo as informações anteriores.



while($array = mysql_fetch_array($clientes)) {


foreach ($array as $CLI)
{
//Código a ser executado
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.