Ik heb de volgende regel om mijn database op te roepen, hiervoor heb ik een pagina met formulier velden met:
voornaam
achternaam
telefoon
plaats

<?php

$s_agenda = mysql_query ( "SELECT * FROM mijndatabase WHERE voornaam='".$_POST['voornaam']."' AND achternaam='".$_POST['achternaam']."' AND telefoon='".$_POST['telefoon']."' AND plaats='".$_POST['plaats']."' ORDER BY achternaam ASC" ) or die ( mysql_error ( ) );

?>

echter als iemand nu op één van de velden NIETS in vult, krijg ik ook mijn data base niet, ik wil graag dat de database op voornaam MOET zoeken, maar de achternaam, telefoon en plaats moeten optioneel zijn.

Zodat als ik alleen een voornaam in tik, dat ik gewoon alle gegevens met die voornaam krijg met alle achternamen, telefoonnummers, en plaatsen.

Hoe ga ik dat doen?
geen AND maar OR gaan gebruiken
AND = en
OR = of

Dan werkt het ;)
Dat kan niet, want als ik dan de voornaam, achternaam, telefoon, plaats in toets, krijg ik alleen die voornaam, met veel meer records met andere achternamen, telefoons, en plaatsen. En niet die specifieke alleen die ik intoets.
kan dat niet op een eenofandere manier met

if (!empty *blablabla*) *enz.*
Sorry, ik ben een newbie, ik snap niet zo goed wat je bedoeld.
Ik ben ook een beginner misschien weet een adner hoe je het kan doen
ik hoop het
niemand?
SELECT *
FROM mijndatabase
WHERE voornaam = 'voornaam'
  AND (achternaam = 'achternaam'
  OR plaats = 'plaats'
  OR telefoon = 'telefoon')


Kwestie van logisch nadenken ;-). Je wilt de voornaam sowieso hebben, de rest is optioneel. Via de haakjes maak je aan SQL duidelijk dat dat bij elkaar hoort. Dus voornaam én (óf achternaam, óf plaats, óf telefoon). Uitschrijven wil ook altijd helpen ;-).

Edit: ohja, volgende keer niet bumpen. Dat is binnen 24 uur je eigen post omhoog halen door er nog een keer in te reageren, terwijl jij al de laatste was die gereageerd had ;-).
In dit topic staat een oplossing die met PHP de query opbouwt op basis van de ingevulde velden.

Reageren