Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
pessoal estou com uma duvida :mellow:
tipo
tenho um bd com nome categoria
onde tem tabela (id) e a tabela (categoria_nome)
exemplo
bd categoria
id categoria_nome
1 uva
2 abacate
e tenho um outro bd com nome produtos
com uma tabela (id_categoria)
que seria quando o usuario adicionar o produto ele cata o (id) do bd categoria e grava na tabela id_categoria
até ai beleza
entao eu listaria todos produtos assim
exemplo
produtos.php?categoria=1
este numero 1 seria o id da categoria que foi gravado no bd produtos no id_categoria
agora vem a duvida
tipo
estou querendo fazer um sistema de busca
tem como eu fazer algum esquema
quando o usuario digitar uva ele procura no bd categoria na tabela categoria_nome e depois pega o id
e vai no bd produtos e cata todos os produtos com o id_categoria igual
e mostra na tela ?
é vou ter de passar o NOME inves do id http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif
assim ele ja busca direto no bd produtos
alterando o id_categoria para nome_categoria
vai gastar mais memoria no mysql mais fazer oque :huh:
eu ja fiz uns teste
unica coisa ruim que ele nao aceita nome com (&)
exemplo
produtos.php?categoria=fruta & cia
vou ter de tirar este (&) e colocar (e)
ai fica assim
produtos.php?categoria=fruta e cia
ai funciona meia boca mais funciona :huh:
Mas para resolver o problema do & use str_replace para mudar para 'e' e depois str_replace para voltar para o &!
Exemplo:
<?php
$string="Eu trabalho na Frutas&Cia!";
$string=str_replace("&", "e", $string);
echo"$string";//Eu trabalho na FrutaseCia
?>
Espero que ajude!Cara...
Se você utilizar este ( & ) como o modo que você está buscando é por GET então ele vai entender que o que você está buscando é somente o primeiro termo, e o restante da url ( o que está depois do & ) ele vai tentar tipo "executar" sabe, e ai ele vai desprezar o que vem depois.
Tipo, você quer buscar por:
busca.php?busca=fruta (&) cia
Ele vai buscar por "fruta" e o que vem depois do & ele vai entender como um comando ou valor que você não se referiu no script.
Um modo de solucionar isto seria você substituir antes de enviar, o & pelo e simples.
Tipo assim:
$busca = "Frutas & cia";
$tratarcaracteres = array("&");
$tratar = str_replace($tratarcaracteres, "e", $buscar);
$buscar = $tratar;
Seria algo similar!
http://github.com/kvz/phpjs/raw/master/functions/url/urlencode.js
<form action="buscar.php" method="get"><input type="text" name="q"><button type="submit">Buscar</button></form>
window.onload = function(){
document.forms[0].onsubmit = function(){
var inputs = this.getElementsByTagName('input');
for(var i = 0, ln = inputs.length; i < ln; i++) inputs.item(i).value = urlencode(inputs.item(i).value);
}
}
<?php echo "Você buscou por: <b>" . urldecode($_GET['q']) . "</b>";
Buscar um texto é o mesmo que buscar um numero, em MySQL.
pros numeros: