Estou fazendo um sistema onde quero fazer uma busca em duas tabelas, caso o valor seja encontrado o sistema mostra os valores que eu quero em uma pagina results.
tabelas: usuario e idiomas;
consegui fazer apenas com uma tabela. segue abaixo o código PHP.
$estado=$_POST['estado'];
$sexo=$_POST['sexo'];
$busca_query = mysql_query("SELECT * FROM usuario WHERE estado LIKE '%$estado%' AND sexo LIKE '%$sexo%'")ordie(mysql_error());if(empty($busca_query)){
echo "Nenhum registro encontrado.";}while($dados = mysql_fetch_array($busca_query)){
echo "Nome : $dados[nome] $dados[sobrenome]<br />";
echo "E-mail : $dados[email]<br />";
echo "Estado : $dados[estado]";
echo "<hr>";}
No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
$banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
$banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
while($busca= mysqli_fetch_array($banner)){
print $busca['cidade'].'<br>';
};
Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
O que tentei até agora
Ex1
$busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
$busca->bindParam('campo', $_REQUEST['campo_form']);
Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
Inseri dados numéricos, da seguinte maneira para testar: 01234567; 12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
Ex2
$busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
Esse número está cadastrado, mas não retorna.
Ex3
$busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
Esse número está cadastrado, mas não retorna.
Ex4
$busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
Esse número está cadastrado, mas não retorna.
Ex5
$busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
Esse número está cadastrado, mas não retorna.
Ex6
$busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
Esse número está cadastrado, mas não retorna.
Ex7
$busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
$busca->bindParam('campo', $_REQUEST['campo_form'])
Não retorna dados.
O $_REQUEST['campo_form'] é envio via AJAX de um formulário.
Usei o gettype para verificar o post, e ele retorna string.
Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
Esse tipo de varchar foi usado porque os números que serão gravados nesse campo, terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
Agradeço desde já.
Compartilhar este post
Link para o post
Compartilhar em outros sites