Door
Ronnie Rijgersberg
op 28-11-2014 12:04
gewijzigd op 28-11-2014 12:07
1.417 views
Goedenmiddag,
Ik ben bezig met een zoek veld en moet data uit 2 verschillende tabellen halen, moet ik dan werken met een join?.
Dit heb ik al:
<php $q = "SELECT * FROM bestellingen WHERE id LIKE '%".$_POST['zoeken']."%' OR klant_id LIKE '%".$_POST['zoeken']."%' OR website LIKE '%".$_POST['zoeken']."%' ORDER BY id DESC "; ?>
Maar uit de tabel 'klanten' moet ik nog op voornaam, achternaam en email kunnen zoeken.
SELECT *
FROM bestellingen
JOIN klanten ON klanten.id = bestellingen.klant_id
je tabellen aan elkaar knopen en dan kun je in de WHERE ook op de kolommen uit klant zoeken.
(Nog wel even de juiste kolomnaam voor klanten.id vinden.)
Dat komt omdat je in de WHERE id hebt staan.
Ik weet niet of je echt wilt zoeken op id, maar zo ja, dan kun je deze vervangen door bestellingen.id.
Dat geldt overigens ook voor alle andere kolommen uit de WHERE clausule. Dus bijv ook bestellingen.website.
Goed gebruik is ook om de SELECT * te vervangen door SELECT en de kolommen die je echt nodig hebt. Dus bijv SELECT bestellingen.id, bestellingen.website, klanten.voornaam etc.
[size=xsmall]Toevoeging op 28/11/2014 14:17:32:[/size]
Alles doet het maar als ik op zoeken druk word mijn bestellingen id de klant id kan het aan de code liggen die ik net gemaakt heb?
<php $q = "SELECT * FROM bestellingen INNER JOIN klanten ON klanten.id = bestellingen.klant_id WHERE bestellingen.id LIKE '%".$_POST['zoeken']."%' OR bestellingen.klant_id LIKE '%".$_POST['zoeken']."%' OR klanten.voornaam LIKE '%".$_POST['zoeken']."%' OR klanten.achternaam LIKE '%".$_POST['zoeken']."%' OR bestellingen.website LIKE '%".$_POST['zoeken']."%' ORDER BY bestellingen.id DESC "; ?>