login  Naam:   Wachtwoord: 
Registreer je!
 Forum

SQL Query

Offline erm - 17/04/2007 14:48 (laatste wijziging 17/04/2007 14:49)
Avatar van ermLid Hey mensen,

Ik heb een foutje met mijn SQL Query, hij hoort het goed t edoen:

  1. <?php
  2. $piQ= mysql_query("SELECT * FROM ProductInfo WHERE ProductString LIKE '%".$_GET[cat]."%' AND WHERE Extra!='Uitverkocht' AND WHERE (sale = 1 OR Network!='') ");
  3. ?>


Dank voor jullie hulp

14 antwoorden

Gesponsorde links
Offline Ultimatum - 17/04/2007 14:50
Avatar van Ultimatum PHP expert 1. Hij hoort het niet goed te doen als je een fout hebt
2. Waarom is or die(mysql_error()); niet aanwezig
3. Krijg je een foundmelding want hoe weet je anders dat je een fout in je query hebt (dus welke foutmelding)
4. Al in phpmyadmin gegooid? (Als je dat hebt)
Offline illon - 17/04/2007 14:52
Avatar van illon Lid Je hebt er 3x WHERE in staan, dit is niet nodig
  1. <?php
  2. $piQ= mysql_query("SELECT * FROM ProductInfo WHERE ProductString LIKE '%".$_GET[cat]."%' AND Extra!='Uitverkocht' AND (sale = 1 OR Network!='') ");
  3. ?>
Offline Ultimatum - 17/04/2007 14:55
Avatar van Ultimatum PHP expert En je GET mist nog ''
Offline ArndJan - 17/04/2007 14:57
Avatar van ArndJan PHP interesse @Ultimatum
2. Waarom is or die(mysql_error()); niet aanwezig

Dat is toch geen manier voor een error handler??

Ik weet niet hoe jij dat doet?

Kijk hier eens even:
http://www.semeleer.nl/lijst.html
Offline Ultimatum - 17/04/2007 15:09
Avatar van Ultimatum PHP expert Om queries te debuggen gebruik je or die(mysql_error()); Als je site online gaat haal je ze weer weg. hoe wil je het anders doen 
Offline erm - 17/04/2007 15:20
Avatar van erm Lid mijn fout dom, bedankt voor jullie feedback;-)
Offline ArndJan - 17/04/2007 15:22 (laatste wijziging 17/04/2007 15:23)
Avatar van ArndJan PHP interesse zo misschien:

  1. or die($error = mysql_error());


Ik weet wel dat PHP5 een mooie manier bied voor het afhandelen van fouten. Maar als het alleen maar om te testen is is er niets mis met: or die(mysql_error()); zolang je maar geen exit(); gebruikt!

:D
Offline laars - 17/04/2007 15:24
Avatar van laars Onbekend
Citaat:
Om queries te debuggen gebruik je or die(mysql_error()); Als je site online gaat haal je ze weer weg. hoe wil je het anders doen
Jij gebruikt dat om te debuggen. En blijkbaar controleer je alleen op fouten tijdens het ontwikkelen ("als je site online gaat haal je ze weer weg").

Citaat:
En je GET mist nog ''
Ik wou dat ik zo duidelijk kon formuleren.
Offline Ibrahim - 17/04/2007 15:27 (laatste wijziging 17/04/2007 15:30)
Avatar van Ibrahim PHP expert
Citaat:
zolang je maar geen exit(); gebruikt!


En waarom zou je dat niet doen ? die() en exit() doen praktisch hetzelfde, dus ik weet niet waar dit nou op slaat...?


Citaat:
Jij gebruikt dat om te debuggen. En blijkbaar controleer je alleen op fouten tijdens het ontwikkelen ("als je site online gaat haal je ze weer weg").


dat is toch logisch... bij een online website zou het niet slim zijn fouten te geven aan bezoekers. Dit komt omdat je dan bezoekers teveel informatie geeft. Het kan een bezoeker niks schelen wat voor fout mysql returned, zolang ze maar een nette error op het scherm krijgen.

"Er is een fout opgetreden, probeer het later nogmaals" is een manier om te laten zien dat er een fout is. Geen informatie teveel en geen informatie te weinig.
Offline laars - 17/04/2007 15:37
Avatar van laars Onbekend Ja, maar als je fatsoenlijke foutafhandeling hebt kun je makkelijk tijdens het ontwikkelen de volledige error laten weergeven, naast of ipv een vriendelijkere melding. Misschien zelfs een var/constante definiëren hiervoor, ff één instelling verandering en het geheel kan online.
Bovenstaande klinkt alsof dat de enige foutcontrole is en dat die dus verdwijnt na het debuggen. Bovendien is overal 'or die()' verwijderen veel werk.
Offline Ultimatum - 17/04/2007 15:37 (laatste wijziging 17/04/2007 15:39)
Avatar van Ultimatum PHP expert
Citaat:
Jij gebruikt dat om te debuggen. En blijkbaar controleer je alleen op fouten tijdens het ontwikkelen ("als je site online gaat haal je ze weer weg").


Wil je zeggen dat jij altijd alle fouten aan je bezoekers laat zien dan? Lekkere site dan als er bovenaan bijvoorbeeld een parse error of iets dergelijks staat..

Citaat:
Ik wou dat ik zo duidelijk kon formuleren.


Doe niet zo moeilijk, ik geef aan waar de fout zit, wat er fout is maar ga het niet verbeteren. Daar (denk ik) leer je het meeste van ipv dat alles word voorgekauwd

Om nog even te muggenziften omdat iedereen elkaar altijd verbeterd, wou is geen goed nederlands woord. Ik wou, zij wouden  ?

Citaat:
Bovenstaande klinkt alsof dat de enige foutcontrole is en dat die dus verdwijnt na het debuggen. Bovendien is overal 'or die()' verwijderen veel werk.


Niet oordelen als je niets van een andermans systeem weet, misschien is or die maar 1 van x aantal foutcontroles. Nee or die(mysql_error()); is niet moeilijk weghalen met dreamweaver (Find and Replace in alle openstaande bestanden doen..)
Offline laars - 17/04/2007 15:49 (laatste wijziging 17/04/2007 15:52)
Avatar van laars Onbekend Zie voor je eerste reactie de posts tussen mijn eerste en jouw laatste reactie.

Over het tweede: je geeft inderdaad aan waar de fout zit, niet wat er fout is, althans niet op een behoorlijk manier. Daar had ik het over, je kon het totaal niet onder woorden brengen. Voorkauwen is zeker niet de manier.

Citaat:
Om nog even te muggenziften omdat iedereen elkaar altijd verbeterd, wou is geen goed nederlands woord. Ik wou, zij wouden
Je vraagt erom...

- 'wou' als gewone verleden tijd ev. van 'willen' is helaas al doorgedrongen tot het 'Groene Boekje', wat hierover zeiken minder overtuigend maakt.
- Dat zeiken doe ik zelf ook, maar dan wel goed. Hier uit ik een wens (duidelijk met ironie). In het Nederlands (dat moet dus met een hoofdletter, jongeman), dat grammaticaal vrij los en versimpeld is, kan je dan naast 'zou + infinitief' ook de verleden tijd gebruiken. Dat is het enige geval waarin het gebruik van 'wou' als verleden tijd mijns inziens gerechtvaardigd is (als een soort conjunctief); misschien zelfs beter dan 'wilde', maar het ontbreekt jou duidelijk aan een gezonde portie taalgevoel.
- 'verbeterd' -- geen d hier, het is een persoonsvorm.

Citaat:
(Find and Replace in alle openstaande bestanden doen..)
Dat moderne software het herstellen van consequent gemaakte fouten minder pijnlijk maakt, betekent niet dat je goed bezig bent.
Offline Ibrahim - 17/04/2007 15:53
Avatar van Ibrahim PHP expert oke, laars je hebt je zegje gedaan, genoeg hierover. Back ontopic
Offline Ultimatum - 17/04/2007 15:57
Avatar van Ultimatum PHP expert
Citaat:
Dat moderne software het herstellen van consequent gemaakte fouten minder pijnlijk maakt, betekent niet dat je goed bezig bent.


Wie zegt dat het consequent gemaakt was dan? Maarja we dwalen af en ik ben het zat om bij elk topic een discussie die nergens over gaat te zien/voeren (ook al doe ik met deze discussie net zo hard mee ja)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.269s