Avatar billede optur Novice
20. april 2011 - 08:55 Der er 3 kommentarer og
1 løsning

søge funktion

Jeg er ved at lave en søgefunktion i php hvor jeg skal vælge alt der er i en tabel som passer til søge ordet.

Jeg har fundet følgende metode, men jeg syntes den virker lidt bøvlet, og ville høre om der ikke er en nemmere måde at skrive det på?


  $sql="SELECT  * FROM Contacts WHERE kundenavn LIKE '%" . $name .  "%' OR telefonnummer LIKE '%" . $name ."%' OR emailadresse LIKE '%" . $name . "%' OR ordrenummer LIKE '%" . $name . "%' OR fragtkvit LIKE '%" . $name . "%'";


Jeg har kun taget et mindre udkast af de felter der er med.
Avatar billede The_Buzz Novice
20. april 2011 - 11:36 #1
Efter min mening er den okay - kan ikke se den er bøvlet?

Jeg antager at du har et enkelt søgefelt og sætter $name som sådan:

$name = $_POST['searchfield']; // Eller $_GET['searchfield']

Men vil dog lige pointere at du ALDRIG skal bruge * i SELECT sætning, men kun vælge de felter der skal bruges.

Du kunne jo omskrive sql i PHP til f.eks.:

$sql="SELECT  * FROM Contacts WHERE
kundenavn LIKE '%" . $name .  "%' OR
telefonnummer LIKE '%" . $name ."%' OR
emailadresse LIKE '%" . $name . "%' OR
ordrenummer LIKE '%" . $name . "%' OR
fragtkvit LIKE '%" . $name . "%'";

Det gør den da mere overskuelig :)
Avatar billede optur Novice
20. april 2011 - 12:20 #2
Tak for dit svar.

Til Select, hvorfor må jeg ikke bruge * når det er ALT jeg skal vælge?

jeg ville bare høre om der ikke var en nemmere måde at skrive det på så man ikke skulle skrive alle felter ind.

Det skal bruges på en lukket side.
Avatar billede The_Buzz Novice
21. april 2011 - 08:57 #3
Hvis det er alle felter du skal bruge - kan du lige så godt bruge *.

Men lad os antage du skulle have felterne "Navn" og "Email" fra en bruger tabel hvor du egentlig er ligeglad med Adresse, Postnr, Bynavn, LastLogin, osv osv...

Så ville "select navn, email from userdatabase where XX = YY" være mindre resourcekrævende end en *
Avatar billede The_Buzz Novice
21. april 2011 - 09:00 #4
Fandt lige denne snippet - men jeg ville nok ikke bruge den - personligt vil jeg helst have 100% kontrol over forespørgslerne så man ikke overbelaster MySQL for meget

http://code.google.com/p/anywhereindb/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester