Ir para conteúdo

POWERED BY:

Arquivado

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

nikolas23

Varrer Array dentro de uma Array

Recommended Posts

Olá, estou tentando fazer uma varredura da array "resultados", porém no momento em que coloco o foreach ele resulta uma varredura apenas do primeiro array($_POST['qtd']) e não de todos os arrays sucessivos. Alguém poderia dar uma dica para varrer todos esses arrays de uma vez só ?

 

 

$resultados = array($_POST['qtd'], $_POST['produto_id'], $_POST['usuario_id'], $_POST['qtd_atual']);

foreach ($resultados as $resultado) {
    $qtd = $resultado[0];
    $produto_id = $resultado[1];
    $usuario_id = $resultado[2];
    $qtd_atual = $resultado[3];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá, estou tentando fazer uma varredura da array "resultados", porém no momento em que coloco o foreach ele resulta uma varredura apenas do primeiro array($_POST['qtd']) e não de todos os arrays sucessivos. Alguém poderia dar uma dica para varrer todos esses arrays de uma vez só ?
$resultados = array($_POST['qtd'], $_POST['produto_id'], $_POST['usuario_id'], $_POST['qtd_atual']);

foreach ($resultados as $resultado) {
    $qtd = $resultado[0];
    $produto_id = $resultado[1];
    $usuario_id = $resultado[2];
    $qtd_atual = $resultado[3];
}

 

Não entendi muito o proposito deste array, sendo que você esta definindo as variáveis diretamente, só que está fazendo no loop.

    $qtd = $resultado[0];
    $produto_id = $resultado[1];
    $usuario_id = $resultado[2];
    $qtd_atual = $resultado[3];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Griever, o propósito é inserir e alterar múltiplos registros no MYSQL. Eu tenho um formulario com varios campos com mesmo 'name', e a quantidade de campos é informada pelo usuário.

 

Ainda não estou entendendo muito bem o propósito daquele code, segue uma solução

 

foreach ($resultados as $indice => $resultado){
if($indice == 0){
$qtd = $resultado;
}
if($indice == 1){
$produto_id = $resultado;
}
if($indice == 2){
$usuario_id = $resultado;
}
if($indice == 3){
$qtd_atual = $resultado;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela atenção Griever. O que estou tentando fazer é inserir e atualizar múltiplos registros com PHP e MYSQL, porém, nunca fiz isso antes e mesmo pesquisando não consegui encontrar métodos que consigam me ajudar

 

Eu tenho esse formulario:

 

<input type='number' name='qtd[]' required> 
<input type='hidden' name='produto_id[]'  value="<?php echo $produto_id ?>" > 
<input type='hidden' name='usuario_id[]'  value="<?php echo $usuario_id ?>" > 
<input type='hidden'  name='qtd_atual[]'  value="<?php echo $produto_quantidae ?>" > 

Eu fiz um code com ajax para o usuário adicionar novos input caso desejar. Nunca trabalhei com Array em formulários e nunca inserir múltiplos registros. A solução que encontrei foi tentar trabalhar com foreach:

$resultados = array($_POST['qtd'], $_POST['produto_id'], $_POST['usuario_id'], $_POST['qtd_atual'];
$tecnico = $_POST['tecnico'];
$data_sistema = date('Y-m-d');


foreach ($resultados as $indice => $resultado) {
    if ($indice == 0) {
        $qtd = $resultado;
    }
    if ($indice == 1) {
        $produto_id = $resultado;
    }
    if ($indice == 2) {
        $usuario_id = $resultado;
    }
    if ($indice == 3) {
        $qtd_atual = $resultado;
    }

    try {
        if ($qtd > $qtd_atual) {
            echo "<script> alert('Quantidade de estoque não disponível');
            window.location = 'produto.php?id={$produto_id}';</script>";
        } else {
            

            $stmt = $pdo->prepare("INSERT INTO historico (historico_acao, historico_quantidade, historico_tecnico, historico_usuario, historico_produto, historico_data) VALUES (:acao, :quantidade, :tecnico, :usuario, :produto, :data);");
            $stmt->execute(array(
                ':acao' => $acao,
                ':quantidade' => $qtd,
                ':tecnico' => $tecnico,
                ':usuario' => $usuario_id,
                ':produto' => $produto_id,
                ':data' => $data_sistema
            ));
            echo "<script> alert('Categoria cadastrada com sucesso');
            window.location = 'form_estoque.php';</script>";
        }
    } catch (PDOException $e) {
        echo 'Error: ' . $e->getMessage();
    }
}

Não sei tem lógica o que eu to tentando fazer, mas pelo jeito não porque não está dando certo. Se puder me passar algumas referencias, agradeço!

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.