Jump to content
Sign in to follow this  
zauk

Select mysql com array

Recommended Posts

Bom dia pessoal.

 

Estou tentando fazer uma busca com mysql utilizando um array no where, só que esta dando erro. segue o codigo ja tentei de tudo!

 

$qntPosicoes = count($campos);

for($i = 0; $i < $qntPosicoes-1; $i += 2){

$camposP = $campos[$i]; //campos vindo do form.
$camposI = $campos[$i+1];

$query = mysql_query("SELECT * FROM documento WHERE $camposI = '$camposP'"); //aqui esta minha duvida, tem alguma forma de colocar o array aqui?

$linha = mysql_num_rows($query);
for($b = 0; $b < $linha; $b++){
while($registros = mysql_fetch_array($query)){
echo $registros['titulo'] . "<br>";
}

}

}

Share this post


Link to post
Share on other sites

Crie a SQL em uma string e dê echo nela para ver como a query está sendo gerada.

Ela deve estar neste formato:

 

 

SELECT campos FROM tablea WHERE campo1 = valor1 OR campo2 = valor2 ... OR campoN = valorN;

(OR ou AND, depende do seu objetivo)

 

Se são arrays, sugiro montar a SQL em um loop. Do jeito que está, você está listando todos os campos e depois todos os valores. Deve estar como mostrei: campo->valor, campo->valor...

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Share this post


Link to post
Share on other sites

o problema está aqui

$query = mysql_query("SELECT * FROM documento WHERE $campos[0] = '$campos[1]'");

 

se eu fizer o select normal assim:

$query = mysql_query("SELECT * FROM documento WHERE titulo = 'titulo'");

funciona normalmente

 

mas com as variaveis ali da esse erro:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean

Share this post


Link to post
Share on other sites

Sim, esse erro ocorre justamente porque mysql_query falhou e retornou false.

Explico com detalhes neste link: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#mysql_result_resource

 

monte a consulta em uma string, em um loop, seguindo a estrutura que mostrei. Use mysql_error para verificar se houve erro, como descrito no link acima

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Guilherme Scarpatto
      Estou fazendo um website de perguntas e respostas, na qual o usuário adiciona sua pergunta e outros usuários podem respondê-las, basicamente como esse. Eu consegui fazer até a parte que o usuário cadastra a pergunta no banco, agora eu empaquei na parte de mostrar esssas perguntas na tela inicial do site para que outros usuários possam respondê-las. Queria uma ajuda de como posso fazer isso, qualquer coisa posso postar os cógidos aqui depois.
    • By cleriston.melo
      Olá pessoal,
       
      Estou com a seguinte dúvida:
      Preciso impimir as informações de um array criado a partir de uma consulta ao banco de dados, mas preciso imprimir essas informações "quebrada".
      Ex: Nas informações contidas no array, tem cod_exp, controle, serie, cod_prod e quant_prod.
      Eu preciso imprimir as informações por serie.tipo:
       
      Série: 1
      (cod_prod)                     quant_prod
      Produto 1                          10
      Produto 2                          30
      Produto 3                          20
      Produto 4                          50
      ---------------
      Série: 2
      (cod_prod)                     quant_prod
      Produto 1                          10
      Produto 2                          30
      Produto 3                          20
      Produto 4                          50
      ---------------
      etc...
      ----------------------------------------
      O código é esse:
       
      <?php
                      $query_prod_exp = "select * from estoque_expositor where est_exp_cod_exp=$cod_exp and est_exp_ativo='S' order by est_exp_cod_exp";
                      $result_prod_exp = mysqli_query($con, $query_prod_exp) or die(mysqli_error());
                      $row_prod_exp = mysqli_fetch_array($result_prod_exp);
                      
                      $controle = $row_prod_exp['est_exp_controle'];
                      $serie = $row_prod_exp['est_exp_controle'];
                      $cod_prod = $row_prod_exp['est_exp_cod_prod'];
                      $saldo_atual = $row_prod_exp['est_exp_quant_prod'];
                      
                          // ESCREVE UMA LINHA NA TABELA
                          echo "<tr>";
                      
                          // ESCREVE UMA COLUNA NA TABELA E EXIBE O NOME DO PRODUTO
                          echo "<td>";
                          $query_prod = "select * from produtos where prod_id=$cod_prod";
                          $result_prod = mysqli_query($con, $query_prod) or die(mysqli_error());
                          while ($row_prod = mysqli_fetch_array($result_prod)) {
                              $prod = $row_prod['prod_nome'];
                              echo $prod."</td>";
                          }
                          echo "<td>" . $saldo_atual . "</td>";
                          echo "</tr>";
                  ?>
       
      Obrigado a todos pela ajuda...
    • By rohilario_
      Galera, boa tarde!
      Estou desenvolvendo um sistema com PHP, Mysql, JS e Bootstrap, que gerencia sorteios conforme cadastro.
      Tudo funcionando perfeitamente, contudo atualmente fazemos impressões em um layout e colocamos em uma urna, na qual acontece o sorteio manual..
      Gostaria, de alguma forma, criar uma tela de sorteio, onde ele buscaria as informações do banco (coluna cartela) e sorteasse um número de cartela qualquer com alguns efeitos de "suspense".
       
      O grande problema para mim até o momento: Fraco em JS apesar de fazer algumas "coisinhas"; Não faço ideia nem por onde começar, comecei tão somente lendo alguns efeitos com jquery.
      https://api.jquery.com/category/effects/
      Não sei como pegar as informações do banco mysql com JS.
      Sugeri o JS por conta das libs disponíveis, mas poderia ser com o proprio PHP...
       
      Agradeço as colaborações desde já!
    • By Dark_Trap000
      Ola, eu tenho um problema ao salvar ips permitidos no MySQL
      segue o codigo de salvamento
      <?php session_start(); include "conexao.php"; if (empty($_SESSION['usuario'])) { header('Location: login.php'); exit(); } $ip = $_SESSION['ip']; echo $pegar_ip = $_SERVER["REMOTE_ADDR"]; if($ip == $pegar_ip) { echo "IP Autorizado!!!"; } else if($ip == 0) { $pegar_ip = $_SERVER["REMOTE_ADDR"]; echo "IP Não Registrado!!!"; $sql = "UPDATE usuario SET creditos = $salvar WHERE usuario_id = $id"; die(); } ?> ele chega á estar tudo certo, + o problema e salvar no mysql. qual o problema ?
    • By MatheusSmidt
      Bom dia,
      Estou precisando de ajuda com o código do formulário de um sistema de cadastro.
      A página é para consulta mas tem a possibilidade de adicionar ou retirar "faltas" de cada profissional cadastrado através de botões simples e também apagar um ou múltiplos profissionais da lista, através de checkbox..
      Essa ações atualizam o banco de dados e já retornam na tela automaticamente.
      O problema é que não fui eu que estruturei o código PHP e não consigo aliar as duas funções que falei anteriormente. Quando consigo fazer funcionar o sistema de adição e redução de faltas, consigo apenas excluir o último nome da lista, mesmo selecionando vários. E quando consigo resolver a parte de excluir vários nomes, não consigo adicionar e reduzir o número de faltas.
       
      Provavelmente é um problema no "WHILE" ou na abertura e fechamento de formulário. Porém não consegui resolver.
      Se alguém conseguir resolver seria ótimo.
      Agradeço desde já. Em anexo envio um print da página para melhor entendimento.
       
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.