login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoekfunctie met PDO

Offline mike87 - 09/06/2009 15:03
Avatar van mike87Nieuw lid Goedenmiddag,

ik ben bezig met een zoekfunctie in php die gebruik maakt van het PDO statement. Nu moet je in deze zoekfunctie kunnen kiezen in welke rij uit de tabel je wil zoeken.
hiervoor gebruik ik de volgende code:

Plaatscode: 136827

deze code geeft geen foutmeldingen maar ik krijg ook nooit resultaten terug met deze query.
zodra ik ':tableRow' zelf bepaal, werkt het wel. Wat moet ik nu aan deze query veranderen zodat de bovenstaande code wel werkt?

deze code werkt wel:
Plaatscode: 136828

Alleen heb ik nu zelf het veld waarin gezocht moet worden aangegeven dus dit draagt niet echt bij aan ene flexibele zoekfunctie.

8 antwoorden

Gesponsorde links
Offline Wave6 - 10/06/2009 07:30 (laatste wijziging 10/06/2009 07:31)
Avatar van Wave6 PHP beginner Als eerste PDO is geen statement... maar een ingebouwde C class die tegenwoordig standaard in PHP zit.
Het is een database class voor ondersteuning van meedere database engines.

Je hoeft geen bindparam te gebruiken want dat is gewoon een soort uitgebreide LIKE operator in SQL.
Probeer je query's te specificeren en maak er een echte zoekfunctie van die bijvoorbeeld resultaten cached.

Probeer dit verder goed uit te werken en je zult snel genoeg betere resultaten zien.

TIP: PDO is erg leuk en het zit goed in elkaar. alleen is het niet bepaald snel....ik wil je dan ook aanraden om hier de juiste Database engine te gebruiken.
Gewoon MySQL of eventueel PostgreSQL.
Zodat dit gewoon met standaard PHP code aan te spreken is.

TIP 2: Voordat je uberhaubt een project start probeer voor je zelf een lijst te maken met alle problemen en probeer hier als eerste een oplossing voor te vinden. Zo voorkom je dus dit soort knelpunten.
Offline mike87 - 10/06/2009 08:46
Avatar van mike87 Nieuw lid De resultaten hoeven niet gecached te worden.
Maar als ik geen bindParam hoef te gebruiken, wat zou ik dan wel moeten doen?
Offline Wave6 - 10/06/2009 16:37
Avatar van Wave6 PHP beginner Het liefst gewoon geen PDO
Offline mike87 - 10/06/2009 16:43
Avatar van mike87 Nieuw lid Gozer, wat heb ik aan die reactie?
Jij heb het liefst geen PDO maar ik gebruik het nu eenmaal.

Ik probeer gewoon een oplossing te vinden voor het probleem waar ik mee zit. Als je me er niet mee kan helpen kan je net zo goed niet reageren want hier kom ik niet veel verder mee.
Offline RdR - 11/06/2009 15:48 (laatste wijziging 11/06/2009 15:52)
Avatar van RdR PHP interesse Ik had precies hetzelfde probleem gehad wanneer ik % gebruikte in mijn WHERE LIKE statement.

Ik heb het toen alsvolgt opgelost:

  1. SELECT
  2. *,
  3. INSTR(veldnaam, :suggestie) AS test
  4. FROM
  5. tabelnaam
  6. HAVING
  7. test > 0


Je bind natuurlijk een parameter aan uggestie. Zonder het gebruik van %!
Offline Wave6 - 11/06/2009 19:17
Avatar van Wave6 PHP beginner Het probleem is dat PDO al traag van zichzelf is...
EN dan probeer je ook nog een LIKE Query uit te voeren...
Als je meer dan 100.000 records met LIKE probeert te vergelijken zeg maar.
Dan zal je server hier heel lang over doen...

Vandaar dat ik je LIKE query afraad.
Offline mike87 - 11/06/2009 20:17
Avatar van mike87 Nieuw lid Bedankt RdR, ik wist niet dat zulke dingen konden 
Ik zal het morgen eens gaan uitproberen.

@D_O,
Dit is maar een deel van de query. Ik wilde hem stapje voor stapje testen en opbouwen. Dit is dus nog maar de eerste stap.
Er komen nog nog meer variabelen bij kijken waardoor het aantal records die LIKE zal moeten vergelijken een stuk kleiner zal worden.
Zelf zal deze zoekfunctie ook maar zeer zelden gebruikt worden denk ik. En het is ook geen functie die op een website komt te draaien maar in een nieuwsbrief systeem waarmee je een contactpersoon op kan zoeken.
Offline Wave6 - 12/06/2009 07:24
Avatar van Wave6 PHP beginner Dan zou je inderdaad nog enkel een LIKE kunnen gebruiken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.162s