Ir para conteúdo

Arquivado

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

maykon343

Array está sendo duplicado

Recommended Posts

Olá pessoal, alguém pode me ajudar por favor. Estou com o seguinte problema, tenho array para inserir na tabela porém esse array está sendo inserido duplicadamente na tabela.

                foreach($_SESSION['arquivos'] as $value ){
                    foreach($_SESSION['produto'] as $id => $quantidade){
                    $strSQLdois = "INSERT INTO `pedidos` (id_cliente, id_produto, quantidade, arquivo, data) VALUES(?,?,?,?,?,NOW())";
                    $stmtdois = BD::conn()->prepare($strSQLdois);
                    $stmtdois->execute(array($usuarioLogado->id_cliente, $id, $quantidade, $value));
                    }
                }

A session arquivos é onde estão guardados os dados dos arquivos de um upload multiplo. A session produto é onde está gravado os dados do produto que foi comprado (o sistema é de um carrinho compras com upload de arquivos). Estou a algum tempo com essa dificuldade porém ainda não consegui resolver, não tenho tanto conhecimento em php por tanto ficarei muito agradecido... Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use foreachs encaixados. Mas sim um único laço, com um contador em comum para os 2 arrays.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use foreachs encaixados. Mas sim um único laço, com um contador em comum para os 2 arrays.

William valeu pela dica, mas como eu poderia fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque:

foreach($_SESSION['arquivos'] as $value ){
   foreach($_SESSION['produto'] as $id => $quantidade){
por:

 

for($i = 0; $i < sizeof($_SESSION['arquivos']); $i++ ) {
    echo $_SESSION['arquivos'][$i], $_SESSION['produto'][$i];
}
estou assumindo que os 2 arrays possuem tamanhos iguais e são relacionados pelas chaves numéricas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu fera, você realmente manda muito bem, ajudou muito... Só mais uma coisa, como faço para pegar o id e a quantidade do produto assim como eu tava fazendo no foreach ? pois não estou conseguindo

 

Realmente só falta isso pra ficar 100%...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

$i = 0;
foreach($_SESSION['produto'] as $id => $quantidade){
 echo $id, $quantidades, $_SESSION['arquivos'][$i];

 //o restante do seu código aqui
 $i++;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Cara muito obrigado, muito obrigado mesmo. Você é muito bom, meus parabéns fico muito agradecido... Admiro muito você por compartilhar conhecimento e ajudar as pessoas. Valeu fera :clap:

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.