Kan iemand mij aub helpen met SQL? Ik heb een tijd geleden een zoekfunctie gemaakt in php. Eerst had ik maar 2 tabellen in de database en 2 kolommen. Nu is het zo erg uitgebreid dat het een hele lange sql statement wordt. Op zich niet erg vind ik, maar ik krijg wel een error. Is dit wel mogelijk zoals ik het nu doe of moet ik allemaal aparte sql statemenst schrijven?

$zoekwoord = $_POST['zoekwoord'];

// Zoekt op zoekwoord en vraagt het aantal keer dat het woord voorkomt
$sql = "SELECT *
FROM Arts, Patient, PDF, text, Home, Onderwijs, Protocollen,
Receptie, Telefoonnummers,Verpleegkundige WHERE Tabblad, Type, Info, ID LIKE '%".$zoekwoord."%' ";

$result = mysql_query($sql);
$quantity = mysql_num_rows($result) ; (Ik krijg een melding dat hier de fout gaat, ik denk zelf dat er iets mis is in de query)
Een where clause ziet er in veel gevallen altijd als volgt uit

tabel.veld voorwaarde waarde

Je zult dus op elk veld de LIKE moeten specificeren en dan moet je er ook nog rekening mee houden dat er een verschil is tussen AND en OR

Pas fatsoenlijke foutafhandeling toe:

<?php

if (($result = mysql_query($sql)) !== false) {

   while ($row = mysql_fetch_assoc($result)) {
     print_r($row);
   }
}
else {
   // op de slordige manier
   echo mysql_error().' '.$sql;
}
?>

en jij krijgt dan de melding error near ', ID LIKE '%".$zoekwoord."%' ";

Maar je kan beter elke tabel afzonederlijk doorzoekn, dat zal sneller gaan dan dat je het nu hebt.
En doe "SELECT COUNT(eenKolomNaam) AS aantal", hoef je niet alle data op te halen en vervolgens daar weer een count op te doen.

Reageren