Ir para conteúdo

Arquivado

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

sergionpinheiro

Explodir ID em Array

Recommended Posts

Bom ida galera,

 

Tenho um formulário que tem autocomplete conforme o usuário digita o nome do produto.

 

Após digitar, o input carrega o NOME DO PRODUTO, CÓDIGO DE BARRAS e ID, pois a identificação para o usuário fica melhor ele digitando o nome do produto e confirma a informação, com o código de barras e id.

 

Até aí tudo tranquilo, o problema é que esse formulário possui o campo PRODUTO e QTD dinâmicos, ou seja, o usuário pode cadastrar quantos produtos quiser para aquele pacote.

 

Meu erro:

$codigo_estoque = Vem de outra consulta do código, mas está funcionando, por isso não coloquei.

    $produto_id     = $_POST['produto'];
    $produto_exp    = explode("-", $produto_id);
    $produto_insert = $produto_exp[2];


    $qtd            = $_POST['qtd'];


    $values = array();


    for($i = 0; $i < sizeof($_POST['produto']); $i++) {
       $values[] = "('{$codigo_estoque}','{$produto_insert[$i]}','{$qtd[$i]}')";
    }


    $inserir = 'INSERT INTO tb_estoque_produtos(EST_CODIGO, PRO_CODIGO, QTD) VALUES '.implode(',', $values);


    $query_inserir = mysql_query($inserir) or die(mysql_error());
A inserção está funcionando, o problema é que no ID do produto, que é o que eu preciso daquele formulário anterior, ele está vindo zerado, mas os outros dados estão funcionando perfeitamente. A bronca está neste EXPLODE que fiz, pois eu preciso do array que está na posição [2]. O modelo de envio é esse: NOMEDOPRODUTO-CODIGODEBARRAS-IDDOPRODUTO
Alguém tem ideia de como posso corrigir este erro?
Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está dando o seguinte erro: Warning: explode() expects parameter 2 to be string, array given in

 

Nessa linha:

 

$produto_exp = explode("-", $produto_id);

 

 

Esse é o input:

 

<input name="produto[]" type="text" class="form-control" placeholder="Produto" rel="popover" data-content="Produto" data-title="Dicas" data-placement="top" onkeyup="mascara(this, toUpper)" id="qproducts" data-provide="typeahead" required>

 

Se eu retirar o [] do name="produto[]", aí o código funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer o explode dentro do loop.

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


       $produto_exp    = explode("-", $_POST['produto'][$i]);
       $produto_insert = $produto_exp[2]; 
         
        $values[] = "('{$codigo_estoque}','{$produto_insert}','{$qtd[$i]}')";

    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

×

Informação importante

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