Reacties op het script Database zoeken
|
Gepost op: 20 juni 2006 - 10:18 |
|
|
|
Crew algemeen
|
Nou koen, kom maar op met je uitleg;-) Ik zie echt het nut er niet van in van wat hier gebeurt, array_shift kan echt gewoon worden gebruikt... |
|
|
|
Gepost op: 20 juni 2006 - 14:10 |
|
|
|
Moderator
|
Mja, maar dat valt toch meer onder "error" handling van de query (controleer of de query syntactisch correct is (klopt de grammatica), controleer of de query semantisch correct is (controleer of er wel bestaande tabellen / kolommen worden opgevraagd en behandel de kolomtypen op de juiste wijze) en kijk of de query uberhaupt wel resultaten oplevert, anders zal elke fetch-query ook niets opleveren)?
Of zie ik dat verkeerd? |
|
|
|
Gepost op: 20 juni 2006 - 14:23 |
|
|
|
Erelid
|
Njah je moet er van uit gaan dat de functie gebruikt wordt door de ontwikkelaar, die hoort te weten of zijn tabel al dan niet bestaat. Indien er geen resultaten zijn voor de zoekopdracht krijg je gewoon een lege array terug, dus een simpele count over je output vertelt je dat gelijk.
Nogmaals, het is bedoeld voor implementatie door de ontwikkelaar en niet voor rechtstreekse input uit een formulier of iets dergelijks, indien je dat wenst kan je vooraf de attributen controleren vooraleer de functie te gebruiken.
Je kan ook altijd nog een or die(mysql_error()); achter de queries zetten mocht het niet gaan zoals het hoort, maar de hedendaagse ontwikkelaar hoort te weten hoe je fouten opspoort |
|
|
|
Gepost op: 20 juni 2006 - 14:48 |
|
|
|
PHP expert
|
@FangorN: helemaal gelijk. Maar dat neemt niets weg van het feit dat de code met array_shift op z'n bek gaat.
Natuurlijk gaat het met wel als je vooraf controleerd. (denk ik toch, ik weet niet precies hoe php omgaat met referenties van return waardes. Dat is nu ook niet echt propere code imo)
Waarom het ook niet zou werken is omdat vanaf php 5.0.5. deze STRICT error geboren is:
Strict Standards: Only variables should be passed by reference in ...
(deze error bestond al, maar dan alleen voor booleans, nu ook voor andere functiereturnwaardes) |
|
|
|
Gepost op: 20 juni 2006 - 18:09 |
|
|
|
Crew algemeen
|
Aha je bedoelt het zo... Ik zal hier zeker geen opmerking over maken omdat je ook zeker gelijk hebt, maar, door mysql_fetch_row naar een array te casten kun je het met array_shift altijd nog doen;-):
while($result[] = array_shift((array) mysql_fetch_row($q)));
of in ieder geval iets in die trant;-) |
|
|
|
Gepost op: 21 juni 2006 - 23:01 |
|
|
|
PHP expert
|
Toch zal php dit niet leuk vinden:
Citaat: Strict Standards: Only variables should be passed by reference in ...
Maar idd, als je E_STRICT afzet dan is het mogelijk om het te laten casten. Maar waarom moeilijk doen, een zwaardere functie gebruiken en met E_STRICT errors krijgen als het op een gemakkelijkere manier kan. |
|
|
|
Gepost op: 29 november 2006 - 11:02 |
|
|
|
Nieuw lid
|
Wellicht domme vraag, maar hoe krijg ik nu emerdere velden terug. Je hebt nu een id geselecteerd, maar als ik meerdere velden selecteer, dan klopt de array van geen kanten meer. |
|
|
Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom. |
|
|
|