Avatar billede bacce.dk Nybegynder
02. november 2005 - 14:14 Der er 11 kommentarer og
1 løsning

Mysql query med mange kriterier driller lidt

Hejsa jeg har lidt probs med en mysql query som ikke vil retunere noget....

Den ser p.t. sådan her ud

SELECT * FROM vare WHERE tilbud != '' AND (udsolgt = ('fjern' or 'slet') AND antal != '0') AND (udsolgt = '' AND antal >= '0')

Det jeg vil have den til, er at retunere ud fra følgende krav.

Alle hvor "tilbud" IKKE er tom. ---> tilbud != ''

Alle hvor der i "udsolgt" står 'fjern' eller 'slet' og "antal" ikke er '0'

Alle hvor "udsolgt" ikke er sat. Lige meget hvad "antal" er sat til

er der nogen der kan hjælpe med den ?.
Avatar billede jaw Nybegynder
02. november 2005 - 14:17 #1
WHERE tilbud != '' AND (udsolgt = 'fjern' OR udsolgt = 'slet') AND udsolgt = '' AND antal > 0

Men dette giver en uoverensstemmelse tror jeg:
AND (udsolgt = 'fjern' OR udsolgt = 'slet') AND udsolgt = ''

Du kan jo ikke hente, hvor udsolgt er "fjern" eller "solgt" og samtidig tom.
Avatar billede bacce.dk Nybegynder
02. november 2005 - 14:28 #2
det er netop problemet.
den skal kun hente hvis udsolgt er sat og DER ER NOGET PÅ LAGER
men samtidigt må den også hente hvor udsolgt ikke er sat men ikke er noget på lager.
Avatar billede bacce.dk Nybegynder
02. november 2005 - 14:28 #3
regnede med at den kunne klares ved at ramme det ind med () men det lykkedes ikke helt.
Avatar billede jaw Nybegynder
02. november 2005 - 14:30 #4
Så tror jeg du mener:
WHERE tilbud != '' AND (udsolgt = 'fjern' OR udsolgt = 'slet' OR udsolgt = '') AND antal > 0

måske? :)
Avatar billede bacce.dk Nybegynder
02. november 2005 - 14:34 #5
jamen så vil den ikke udskrive hvor udsolgt = '' og antal er 0
den skal netop tage alle antal med hvis udsolgt IKKE er sat.
Kun hvis udsolgt er sat må den ikke tage antal = 0 med
Avatar billede jaw Nybegynder
02. november 2005 - 14:45 #6
Jeg må lige forstå det.

Hvis udsolgt er 'fjern' eller 'slet' skal den kun tage hvor antal ikke er 0
Hvis udsolgt så tilgengæld er tom, skal den tage hvor antal er 0

?
Avatar billede bacce.dk Nybegynder
02. november 2005 - 14:54 #7
yeps
Det er fordi der er visse varer som godt kan sættes til salg selvom de ikke fysisk er på lager.

Hvis udsolgt står til 'fjern' må den ikke vises i shoppen hvis den går i nul på lager

Hvis udsolgt står til 'slet' skal varen slettes elt i db når den går i nul.

Hvis udsolgt ikke er sat skal varen stadig komme frem som var den på lager, da disse varer kan hentes med 5 min varsel, samt der også sælges ydelser og dem kan man ikke lagerføre men de skal stadig sælges :-)
Avatar billede jaw Nybegynder
02. november 2005 - 15:02 #8
Ok, det er nu stadig en smule abstrakt for mig, men jeg vil gerne give den et forsøg endnu :)

WHERE tilbud != '' AND ((udsolgt = 'fjern' OR udsolgt = 'slet') AND antal > 0) OR (udsolgt = '' AND antal >= 0)
Avatar billede bacce.dk Nybegynder
02. november 2005 - 20:19 #9
nå okey den ser ud som om den skulle klare det....


Fandt dog på noget andet...
Køre 2 mysql_query()
en med udsolgt = 'fjern' OR udsolgt = 'slet'
og en med udsolgt = ''
derefter smid jeg først den ene i arrays og derefter lagde jeg den anden i samme arrays og det funker også fint....

Men smid et svar, så accepterer jeg som tak for hjælpen....
Avatar billede jaw Nybegynder
03. november 2005 - 14:15 #10
Vi kan jo også dele?! Men det burde ikke være det aller største problem at gøre det i sql'en, er bare bange for at jeg ikke kan komme nærmere, da jeg ikke 100% forstår hvad du vil...
Avatar billede bacce.dk Nybegynder
03. november 2005 - 19:25 #11
Det du har skrevet, ser nu rigtigt ud, men om det lige vil virke ved jeg ikke da jeg ikke har tested det.. nu har jeg lavet det andet jo, sååå gider dårligt at lave det om igen.. har allerede brugt for lang tid på det :-)

det er lige megetmed at dele... har sku alligevæl flere point end jeg nogen sinde kommer til at bruge... :-)

Men tak for din tid..
Avatar billede jaw Nybegynder
03. november 2005 - 19:41 #12
Ok, tak så :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester