Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola pessoal, estou com uma duvida no sql, tenho um bd:
nome:
telefone:
endereço:
vip: (entre 1, 2, 3)
e gostaria de puxar de filtrar ele com 2 parametros, o primeiro seria o nome especifico (where nome like '%$***%') o segundo eu qeria que ele puxasse apenas os cadastros que fossem vip 1 e vip 2. isso é para utilizar no campo pesquisar no site, aonde so retornara os cadastros das pessoas que sao patrocinadoras a qual eu atribuirei como vip 1 ou vip 2.
isso deve ser facil mais nao consegi axar nada na internet esplicando, fico no agardo e obrigado pela força.
deu certinho vivendo e aprendendo obrigado pela instruçao.
estou com um peqeno probleminha aqui, nao sei pq o meu pesquisar so esta retornando do 2º resultado pra frente:
<?
mysql_select_db($database_agvj, $agvj);
$pesquisa = $_GET['pesquisar'];
$query_recordagvj = "SELECT * FROM agendajuina WHERE nome like '%$pesquisa%'
UNION
SELECT * FROM agendaaripuana where nome like '%$pesquisa%'
UNION
SELECT * FROM agendabrasnorte where nome like '%$pesquisa%'
UNION
SELECT * FROM agendacastanheira where nome like '%$pesquisa%'
UNION
SELECT * FROM agendacolniza where nome like '%$pesquisa%'
UNION
SELECT * FROM agendacotriguacu where nome like '%$pesquisa%'
UNION
SELECT * FROM agendajuruena where nome like '%$pesquisa%'";
$recordagvj = mysql_query($query_recordagvj, $agvj) or die(mysql_error());
$row_recordagvj = mysql_fetch_assoc($recordagvj);
$totalRows_recordagvj = mysql_num_rows($recordagvj);
while ($row_recordagvj = mysql_fetch_assoc($recordagvj)){
$nome = $row_recordagvj['nome'];
$endereco = $row_recordagvj['endereco'];
$fone = $row_recordagvj['telefone'];
$imagem = $row_recordagvj['imagem'];
$vip = $row_recordagvj['vip'];
$name = "";
$telefone = "";
$ender = "";
$exibir = "";
switch($vip){
case 0:
$name = $nome;
$telefone = $fone;
break;
case 1:
$name = $nome;
$telefone = $fone;
$ender = $endereco;
$exibir = $imagem;
break;
}
?>
<table width="567">
<tr>
<th colspan="2"></th>
</tr>
<?php
if($exibir != ''){
?>
<td rowspan="3" width="20%"><div align="left">
<img src="imagens/classificados/<?php echo $exibir?>"/>
</div></td>
<?php
}
?>
<td style="font-family:Tahoma, Palatino Linotype, Book Antiqua, Times New Roman; font-size:18px; font-weight:bolder; padding-left:10px;"><? echo $name?></td>
</tr>
<tr>
<td style="Tahoma, Palatino Linotype, Book Antiqua, Times New Roman; font-size:14px; font-weight:bolder; padding-left:10px;"><? echo $ender?></td>
</tr>
<tr>
<td style="Tahoma, Palatino Linotype, Book Antiqua, Times New Roman; font-size:16px; font-weight:bolder; color:#F00; padding-left:10px;"><? echo $telefone?></td>
</tr>
<tr>
<th colspan="2" width="567" height="2"><hr /></th>
</tr>
</table>
<?php } ?>
aonde o $pesquisa é aonde vem os dados do campo pesquisar, se eu utilizo o mesmo comando no sql no phpmyadmin ele retorna o resultado do 1º em diante certinho. o que sera que tem de errado ai?
Rode a query em separado para ver se o problema é nela ou não.
deixei apenas um query sem o union
$query_recordagvj = "SELECT * FROM agendajuina WHERE nome like '%$pesquisa%'";
nao deu certo tbm, continua sem exibir o primeiro resultado, estranho pq se eu for la no phpmyadmin e digitar por exemplo:
SELECT * FROM agendajuina WHERE nome like '%maria%'
ele exibe o certinho, e indo pelo site ele começa a mostrar os resultados apartir do 2º nome so.
entrem no site para verem http://www.agendavaledojuruena.com.br/site/
e pesquisem la por exemplo: maria
e entrem nessa pagina q copiei e colei o sql e aparecera o 1º resultado:
http://www.agendavaledojuruena.com.br/site/pfone.php
muito estranho, deve ter algo na pagina q esta ocultando o preimeiro resultado, mais nao sei o q é, sou iniciante por isso estou pedindo ajuda, se algem puder agradeço abraços
Em php sou analfabeto ...
motta mesmo assim obrigado pelo força ate agora, tou na esperança de consegir ^^
[...]
$row_recordagvj = mysql_fetch_assoc($recordagvj); // Comente esse cara
$totalRows_recordagvj = mysql_num_rows($recordagvj);
while ($row_recordagvj = mysql_fetch_assoc($recordagvj))
[...]
Você esta usando 1 vez o 'mysql_fetch_assoc' antes de começar o LOOP comente a linha ali em cima que resolve.
é eu vi depois esta parte errada, é q eu esta mudando de lugar e acabei eskecendo de apagar, consegi resolver colocando o: <?php do { ?> e o while ($row_recordagvj = mysql_fetch_assoc($recordagvj)) no fianl do loop ficando assim:
<?
mysql_select_db($database_agvj, $agvj);
$pesquisa = $_GET['pesquisar'];
$query_recordagvj = "SELECT * FROM agendajuina WHERE nome like '%$pesquisa%'
UNION
SELECT * FROM agendaaripuana where nome like '%$pesquisa%'
UNION
SELECT * FROM agendabrasnorte where nome like '%$pesquisa%'
UNION
SELECT * FROM agendacastanheira where nome like '%$pesquisa%'
UNION
SELECT * FROM agendacolniza where nome like '%$pesquisa%'
UNION
SELECT * FROM agendacotriguacu where nome like '%$pesquisa%'
UNION
SELECT * FROM agendajuruena where nome like '%$pesquisa%'";
$recordagvj = mysql_query($query_recordagvj, $agvj) or die(mysql_error());
$row_recordagvj = mysql_fetch_assoc($recordagvj);
$totalRows_recordagvj = mysql_num_rows($recordagvj);
?>
<?php do { ?>
<?
$nome = $row_recordagvj['nome'];
$endereco = $row_recordagvj['endereco'];
$fone = $row_recordagvj['telefone'];
$imagem = $row_recordagvj['imagem'];
$vip = $row_recordagvj['vip'];
$name = "";
$telefone = "";
$ender = "";
$exibir = "";
switch($vip){
case 0:
$name = $nome;
$telefone = $fone;
break;
case 1:
$name = $nome;
$telefone = $fone;
$ender = $endereco;
$exibir = $imagem;
break;
}
?>
<table width="567">
<tr>
<th colspan="2"></th>
</tr>
<?php
if($exibir != ''){
?>
<td rowspan="3" width="20%"><div align="left">
<img src="imagens/classificados/<?php echo $exibir?>"/>
</div></td>
<?php
}
?>
<td style="font-family:Tahoma, Palatino Linotype, Book Antiqua, Times New Roman; font-size:18px; font-weight:bolder; padding-left:10px;"><? echo $name?></td>
</tr>
<tr>
<td style="Tahoma, Palatino Linotype, Book Antiqua, Times New Roman; font-size:14px; font-weight:bolder; padding-left:10px;"><? echo $ender?></td>
</tr>
<tr>
<td style="Tahoma, Palatino Linotype, Book Antiqua, Times New Roman; font-size:16px; font-weight:bolder; color:#F00; padding-left:10px;"><? echo $telefone?></td>
</tr>
<tr>
<th colspan="2" width="567" height="2"><hr /></th>
</tr>
</table>
<?php } while ($row_recordagvj = mysql_fetch_assoc($recordagvj)) ?>
obrigado pela atençao pessoal, resolvido e pode fexar o topico
Use o IN.
WHERE NOME LIKE 'AMD%'
AND VIP IN (1,2)