Toon posts:

[mySQL] Select probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik voer een select uit op de database waarbij ik twee items uit vier categoriën wil. Nu is het zo dat die twee items met een vinkje in de admin aangegeven worden. Het kan dan heel goed gebeuren dat er per ongeluk drie items aangevinkt zijn. Als het nou 1 categorie zou zijn per query, dan zou ik LIMIT 2 gebruiken, echter wil ik als het kan zo weinig mogelijk query's gebruiken. Hoe los ik dit op? Ik heb wel redelijk wat zitten zoeken op internet, maar nergens een website gevonden die dit probleem benaderde. Mijn huidige query is dit:
code:
1
SELECT artno, name, ursprice, normprice, leaseprice, small FROM EXP_prod WHERE cat = 1 OR cat = 3 OR cat = 4 OR cat = 8 OR cat = 9 AND frontpage = 1 ORDER BY cat, name

[ Voor 5% gewijzigd door Verwijderd op 26-09-2003 09:49 . Reden: [code] tags toegevoegd, "); verwijderd ]


Verwijderd

Topicstarter
Er zitten nog wat meer foutjes in zie ik net, bij: cat = 1 OR cat = 3 OR cat = 4 OR cat = 8 OR cat = 9 AND frontpage = 1, select hij ook dingen waar frontpage niet 1 is, en dat is niet echt de bedoeling.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Als je zegt dat het kan zijn dat er per ongeluk 3 items aangevinkt worden, dan ga ik er van uit dat je eigenlijk maar wil dat men max. 2 items kan aanvinken.
Waarom laat je dan gewoon geen fout zien aan de gebruiker als hij meer dan 3 items aangevinkt heeft? Dan weet hij ook meteen dat hij iets niet goed doet.
Het zou nl. nogal verwarrend kunnen overkomen als iemand 3 items aanvinkt, en hij krijgt er dan maar 2 (willekeurige) te zien.

https://fgheysels.github.io/


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op 26 September 2003 @ 09:33:
Er zitten nog wat meer foutjes in zie ik net, bij: cat = 1 OR cat = 3 OR cat = 4 OR cat = 8 OR cat = 9 AND frontpage = 1, select hij ook dingen waar frontpage niet 1 is, en dat is niet echt de bedoeling.
Dan moet je haakjes gebruiken: (xxx or yyy or zzz) and qqq

Who is John Galt?


Verwijderd

Topicstarter
Zit iets in, maar van de andere kant, als hij eerst een vink moet verwijderen en dan bij een ander product aan moet zetten, kan het zijn dat er maar 1 weergegeven wordt, en dat wil ik voorkomen, dus eigelijk is er een protocol dat er minimaal 2 vinkjes moeten staan ten alle tijden, maar er mogen er maar twee aangegeven worden.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Controleer voordat je je query uitvoert of hij wel juist 2 vinkjes gezet heeft? :?

https://fgheysels.github.io/


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 26 September 2003 @ 09:36:
Zit iets in, maar van de andere kant, als hij eerst een vink moet verwijderen en dan bij een ander product aan moet zetten, kan het zijn dat er maar 1 weergegeven wordt, en dat wil ik voorkomen, dus eigelijk is er een protocol dat er minimaal 2 vinkjes moeten staan ten alle tijden, maar er mogen er maar twee aangegeven worden.
Dat is niet logisch en men begrijpt geen protocol. Hou het simpel mogelijk. Gewoon duidelijk als eis 2 vinkjes. En je kan best de gebruiker terug sturen of met popup waarschuwen dat hij een vinkje weg moet halen. En als je dat netjes'doet dan zijn niet alle vinkjes meteen gedeselteerd hoor.

{signature}


Verwijderd

Topicstarter
justmental schreef op 26 september 2003 @ 09:36:
[...]

Dan moet je haakjes gebruiken: (xxx or yyy or zzz) and qqq
thnx man, dit werkt, alleen nog niet zoals het moet, want hij selecteerd te weinig. Ik weet bijvoorbeeld dat in cat 9 twee items frontpage 1 hebben en die zie ik niet terug.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Ik neem trouwens aan dat die ") niet in de echte query staat.

[ Voor 12% gewijzigd door Voutloos op 26-09-2003 09:45 ]

{signature}


Verwijderd

Topicstarter
Voutloos schreef op 26 September 2003 @ 09:45:
Ik neem trouwens aan dat die ") niet in de echte query staat.
Nope

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Dus je weet echt 100% zeker dat je nu 2 rows krijgt: (testje)
code:
1
2
SELECT artno, name, ursprice, normprice, leaseprice, small 
FROM EXP_prod WHERE cat = 9 AND frontpage = 1 ORDER BY cat, name;

{signature}


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Ik ga er van uit dat je die haakjes goed geplaatst hebt, dus dan schieten we niet verder op tenzij je meer info geeft.

{signature}


Verwijderd

dus met

code:
1
2
SELECT artno, name, ursprice, normprice, leaseprice, small 
FROM EXP_prod WHERE cat = 9 AND frontpage = 1 ORDER BY cat, name;


krijg je wel twee rij-en en met jou query met al die OR's krijg je maar 1 rij :? dat kan gewoon niet lijkt me..

misschien moet je je aangepaste query nog eens posten

[ Voor 11% gewijzigd door Verwijderd op 26-09-2003 12:15 ]


Verwijderd

Topicstarter
Is al gelukt, ik weet eigelijk ook niet waarom hij het niet deed :? . Thanx all!

[ Voor 3% gewijzigd door Verwijderd op 26-09-2003 13:31 ]

Pagina: 1