Ir para conteúdo

POWERED BY:

Arquivado

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

sergionpinheiro

Foreach com 3 arrays

Recommended Posts

Bom dia galera,

 

Estou desenvolvendo um formulário que permite inserir várias linhas, conforme a necessidade do usuário.

 

Este form tem: url, qtd e descricao. Caso o usuário queira mais de uma lista, ele vai inserindo mais linhas e cada campo é um array.

 

Fiz o seguinte código:

    $url = $_POST['url'];
    $qtd = $_POST['qtd'];
    $des = $_POST['descricao'];
 
    foreach ($url as $q => $p) {
      foreach ($des as $i => $d) {
 
          $url        = $p;
          $quantidade = $qtd[$q];
          $descricao  = $d;
 
          $insert_dca = "INSERT INTO tb_dados(DCA_COM_CODIGO, DCA_URL, DCA_QTD, DCA_DESCRICAO)
                          VALUES('$codigo_com','$url','$quantidade','$descricao')";
          $query_insert_dca = mysql_query($insert_dca) or die(mysql_error());
 
      }
    } 

Está inserindo, porém estão sendo feitos 3 registros de cada um (caso eu insira três linhas). Cada vez que ele passa no foreach, ele grava uma vez no banco. Queria que gravasse os três campos de uma vez em cada linha.

 

Alguém tem uma luz?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso vc não usa foreach, use um for() com um contador único para todos os arrays.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$url = $_POST['url'];

$qtd = $_POST['qtd'];

$des = $_POST['descricao'];

$values = array();

 

for($i = 0; $i<sizeof($_POST['url']): $i++) {

$values[] = "('{$url[$i]}','{$qtd[$i]}','{$des[$i]}')";

}

 

$insert_dca = 'INSERT INTO tb_dados(DCA_COM_CODIGO, DCA_URL, DCA_QTD, DCA_DESCRICAO) VALUES '.implode(',', $values);

 

echo $insert_dca, '<br />';

$query_insert_dca = mysql_query($insert_dca) or die(mysql_error());

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.