Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago Vianna /+/

[Resolvido] Buscar várias 'coisas' em linhas de Mysql

Recommended Posts

Olá pessoal, tudo certinho ?

To precisando de um código que funcionasse tipo como o WHERE = $variavel na linha de busca no PHP, mas que essa variável fosse vários números, vou dar um exemplo abaixo:

<?php
$id = '5';
$sql = "SELECT * FROM mural ORDER BY acaoid DESC WHERE id = '$id'";
$sqq = mysql_query($sql) or die (mysql_error());
$bsg = mysql_fetch_assoc($sqq);

O que preciso, é que em vez dele buscar somente a ID 5, que ele busque com outras ID's que eu irei definir , pensei em fazer com uma array mas não deu certo =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o MySQL IN:

$idArray = array(1,3,7,10,12);
$idList = join(', ', $idArray);
$sql = "SELECT * FROM mural ORDER BY acaoid DESC WHERE id IN ($idList)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, deu o seguinte erro:

'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE emailusuario IN (1, 6, 7, 10, 12)' at line 1'

Compartilhar este post


Link para o post
Compartilhar em outros sites

'WHERE emailusuario IN (1, 6, 7, 10, 12)

 

emailusuario é um campo do tipo INT ? Se não for você tem que usar 'aspas' para os campos, nesse caso você está passando apenas numeros inteiros ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta a query toda que vem dando erro pois esta diferente da que postou inicialmente

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
$idArray = array(1,6,7,10,12);
$idList = join(', ', $idArray);
$sql = "SELECT * FROM mural ORDER BY acaoid DESC LIMIT $elimit WHERE emailusuario IN ($idList)";
$sqq = mysql_query($sql) or die (mysql_error());
$bsg = mysql_fetch_assoc($sqq);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta de atenção, minha:

$sql = "SELECT * FROM mural ORDER BY acaoid DESC WHERE id IN ($idList)"

 

Está errado mesmo... :assobiando:

O correto é assim:

$sql = "SELECT * FROM mural WHERE id IN ($idList) ORDER BY acaoid DESC"

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vaaaaaleu cara, está rodando beleza, mas se não for pedir demais, com o LIMIT ? fica como ?

 

Update ----

Agora foi falta de atenção minha , :nataltongue:

 

bom, o cod. ficou assim, se alguém precisar:

<?php
$idArray = array(1,6,7,10,12);
$idList = join(', ', $idArray);
$sql = "SELECT * FROM mural WHERE emailusuario IN ($idList) ORDER BY acaoid DESC LIMIT 30";
$sqq = mysql_query($sql) or die (mysql_error());
$bsg = mysql_fetch_assoc($sqq);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu

 

Imaginei que estava errado alguma coisa na query pois o trecho que havia postado estava super correto

 

Parabéns

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.