login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Database tools > Zoeken in meerdere kolommen


Reacties op het script Zoeken in meerdere kolommen

Offline  nemesiskoen
Gepost op: 15 augustus 2005 - 23:25
Gouden medaille

PHP expert




Leg het nut van de tweede parameter is uit, want ik denk dat deze niet goed wordt toegepast.
Dit(voorbeeld1) geeft als output(voorbeeld2).
voorbeeld1
  1. <?php
  2. echo getWhereString("blaat", 'AND', array('kolom1', 'kolom2', 'kolom3'));
  3. ?>

voorbeeld2
  1. ( kolom1 LIKE '%blaat%' OR kolom2 LIKE '%blaat%' OR kolom3 LIKE '%blaat%' )


moet dat normaal niet als output dit geven:
  1. ( kolom1 LIKE '%blaat%' AND kolom2 LIKE '%blaat%' AND kolom3 LIKE '%blaat%' )


Of heeft de tweede parameter een ander nut?

Offline  Piro
Gepost op: 15 augustus 2005 - 23:29
Nieuw lid



De 2e parameter dient om aan te geven of alle keywords moeten voorkomenof mogen voorkomen...


Ik heb het er even bij vermeld ;)

Als je overal AND zou doen, dan moet het keywoord in alle kolom voorkomen, en dat is niet nodig, het moet gewoon voorkomen in 1 kolom... ;)

Offline  nemesiskoen
Gepost op: 15 augustus 2005 - 23:39
Gouden medaille

PHP expert




Veranderd er iets aan de uitvoer van je query als je haken rond de gehele where clausule zet of niet?
Ik denk het eigenlijk niet, dit is hetzelfde als haken rond een waarde te zetten die word geëchood.

Haken houden toch in dat je het geheel moet bekijken, maar WHERE bekijkt zowiezo het geheel tot LIMIT of ORDER BY in de query staat.
Dus veranderd er niets aanje query (of ik zit fout).

Offline  Piro
Gepost op: 15 augustus 2005 - 23:43
Nieuw lid



De haakjes doen er eigenlijk niet toe... ik heb ze al toegevoegd voor het gemak, maar eigenlijk moeten ze er niet staan...

Offline  nemesiskoen
Gepost op: 15 augustus 2005 - 23:44
Gouden medaille

PHP expert




Dan is er geen verschil in een query waarbij je AND zet als tweede argument of OR als tweede argument.
Je gebruikt het tweede argument enkel om te controleren of het AND is. Zoja -> dan gooi je haakjes rond het hele gedoe... kan je niet beter: Zoja -> dan zet ik AND waar OR staat.

Offline  Piro
Gepost op: 15 augustus 2005 - 23:54
Nieuw lid



Er is wel een verschil... Als je OR gebruikt, zal je alle resultaten terug krijgen waarin tenminste 1 keyword voorkomt, als je AND gebruikt, moeten alle keywords minstens 1 keer voorkomen...:

  1. <?php
  2. echo getWhereString('blaat1 blaat2', 'AND', array('kolom', 'kolom2'));
  3. //OUTPUT: ( kolom LIKE '%blaat1%' OR kolom2 LIKE '%blaat1%' ) AND ( kolom LIKE '%blaat2%' OR kolom2 LIKE '%blaat2%' )
  4.  
  5.  
  6. echo getWhereString('blaat1 blaat2', 'OR', array('kolom', 'kolom2'));
  7. //OUTPUT: kolom LIKE '%blaat1%' OR kolom2 LIKE '%blaat1%' OR kolom LIKE '%blaat2%' OR kolom2 LIKE '%blaat2%'
  8.  
  9. ?>

Offline  nemesiskoen
Gepost op: 15 augustus 2005 - 23:56
Gouden medaille

PHP expert




my mistake
Had nog niet getest met meerdere woorden.

Offline  Piro
Gepost op: 15 augustus 2005 - 23:59
Nieuw lid



Is nix ;) (heb het script intussen voorzien van iets duidelijkere variabelen...)

Offline  Thomas
Gepost op: 16 augustus 2005 - 10:45
Moderator



Haken rond AND en OR zetten is zeker niet onverstandig.

(A AND B) OR C en A AND (B OR C) zijn twee hele verschillende dingen.

Offline  venkatesaya
Gepost op: 18 mei 2009 - 21:13
Nieuw lid



kan iemand hiervoor een formulier maken dat erbij past aub


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.058s