cautare

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

MariuSache
PHPRomania Supporter
Mesaje: 28
Membru din: Mar Iul 10, 2007 11:01 am
Localitate: pe scaun
Contact:

cautare

Mesajde MariuSache » Dum Mar 30, 2008 8:22 pm

-am in baza de date
id | marca | model | ...

-si un singur camp

ce sintaxa trebuie pusa pentru a-mi afisa at cand omul scrie in camp "opel omega" ?..mai bine zis sa am un fel de cautare universala in amandoua coloanele de la un singur cuvant dat in search..
ms :)


Adunarea !



badtiger
Senior Member
Mesaje: 598
Membru din: Vin Noi 03, 2006 7:54 pm
Contact:

Mesajde badtiger » Dum Mar 30, 2008 11:18 pm


MariuSache
PHPRomania Supporter
Mesaje: 28
Membru din: Mar Iul 10, 2007 11:01 am
Localitate: pe scaun
Contact:

Mesajde MariuSache » Lun Mar 31, 2008 1:35 pm

Adunarea !






MariuSache
PHPRomania Supporter
Mesaje: 28
Membru din: Mar Iul 10, 2007 11:01 am
Localitate: pe scaun
Contact:

Mesajde MariuSache » Mar Apr 01, 2008 12:28 pm

am intampinat o problema...
daca omu da in camp opel omega ii apare iar, daca da doar omega nu-i mai apare..
ce trebuie facut in cazul asta :-?
ms :)
Adunarea !






Avatar utilizator
saitek
Senior Member
Mesaje: 454
Membru din: Dum Sep 23, 2007 6:40 am

Mesajde saitek » Mar Apr 01, 2008 3:19 pm

Cauta despre mysql LIKE
|
GOOGLE = un mare prost

badtiger
Senior Member
Mesaje: 598
Membru din: Vin Noi 03, 2006 7:54 pm
Contact:

Mesajde badtiger » Mar Apr 01, 2008 7:20 pm


Avatar utilizator
Mascka
Senior Member
Mesaje: 1376
Membru din: Sâm Oct 01, 2005 8:00 am
Localitate: Braila
Contact:

Mesajde Mascka » Mar Apr 01, 2008 11:34 pm

or

MariuSache
PHPRomania Supporter
Mesaje: 28
Membru din: Mar Iul 10, 2007 11:01 am
Localitate: pe scaun
Contact:

Mesajde MariuSache » Mar Apr 01, 2008 11:41 pm

eu am asa :

SELECT COUNT(*) as Num FROM anunturi WHERE marca LIKE '%$aux[0]%' OR model LIKE '%$aux[1]%'"

am incercat si cu OR si cu AND si nu da nici nu rezultat :(
Adunarea !






drailean
PHPRomania Supporter
Mesaje: 5
Membru din: Sâm Mai 13, 2006 2:07 am
Localitate: Bucuresti
Contact:

Mesajde drailean » Mie Apr 02, 2008 1:46 am

cred ca, intai de toate, s-ar putea gasi o solutie mult mai buna de cautare, pe baza de niste id-uri: faci 3 tabele, una cu id-ul de marca(opel/renault...), una cu id-ul de model (vectra/laguna.....) si inca una de asociere in care tii doar id-urile de marca si de model (doua coloane). apoi, la formul de cautare pui fromos doua selectoare, unul de marca, unul de model, si cand omul face submit vii si selectezi din tabela a 3-a (cu asocierile ) doar cu "where id_marca=x and id_model=y", vei avea exclusiv index numeric (pui index pe ambele coloane), si poti avea si 3 miliarde de row-uri in acea tabela, ca tot va zbarnai de viteza.
a doua varianta e sa folosesti index fulltext pe coloanele din tabela ta (marca si model). uita-te la documentatia de mysql, e explicat foarte bine cam tot despre fulltext, te va ajuta pentru ca e un index nativ, in timp ce acel "%LIKE%" va merge ca un c..r atunci cand ti se aduna ceva mai multe inregistrari in tabela, plus ca nu ai nici un fel de optimizare....

badtiger
Senior Member
Mesaje: 598
Membru din: Vin Noi 03, 2006 7:54 pm
Contact:

Mesajde badtiger » Mie Apr 02, 2008 12:19 pm

nu este nevoie de nici o tabela de asociere folosesti uid-ul din tabela cu marci ca foreign id in tabela cu modele mai altfel spus

marci: id_marca, nume_marca
modele: id_model, id_marca, nume_model

//si codul ceva in genul acesta
SELECT * FROM marci,modele WHERE marci.id_marca=modele.id_marca AND model LIKE '%$aux[0]%' LIMIT 20

MariuSache
PHPRomania Supporter
Mesaje: 28
Membru din: Mar Iul 10, 2007 11:01 am
Localitate: pe scaun
Contact:

Mesajde MariuSache » Mie Apr 02, 2008 4:14 pm

Adunarea !







Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 15 vizitatori