MySQL: Reihenfolge logischer Operatoren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
bestehen
code
datensatz
demonstrieren
ding
dreher
ergebnis
frage
funktionieren
information
klammern
probieren
problem
rat
sagen
schnelle hilfe
spalten
tabelle
vorkommen
-
Hi Leutz,
Ich habe leider gerade irgendwie einen Dreher drin, brauche das Script allerdings am besten gestern und möchte aus deswegen fix um Rat fragen, da es für eine große Community ist....
Also ich habe eine Tabelle für eine Freundesliste mit den Feldern userID, buddy, accepted
Nur habe ich mir folgende Abfrage als 10ten Lösungsansatz ausgedacht:
WHERE `userID`=('$userID','$id') OR `buddy`=('$userID','$id') AND `accepted`='1'
Allerdings auch vergebens...
Könnte ihr mir helfen? Bitte.....
Gruß
Chris -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
was willst du denn mit `userID`=('$userID','$id') bezwecken?
WHERE `userID`=$userID OR `buddy`=$id AND `accepted`=1
oder willst du die datensätze haben, die entweder $userID ODER $id haben? dann brauchst du ein IN:
WHERE `userID` IN($userID,$id) OR `buddy` IN($userID,$id) AND `accepted`=1
-
also es ist ja so ein Freundes abfrage dingen :P
Also mal angenommen user 1 und 2 sind befreundet dann bestehen doch 2 Möglichenkeiten einmal
userID 1
buddy 2
ODER
userID 2
buddy 1
und das soll er suchen einen datensatz davon der dann aber auch `accepted`=1 beinhaltet
wobei der Datensatz noch dazu dienen soll das es keine doppelten Einträge gibt also entweder userID oder buddy beides ist möglich in Variation darf aber nur einmal vorkommen
praktisch kompliziert was aber nicht geht: `userID`='$userID' AND `buddy`='$buddy_id' OR `userID`='$buddy_id' AND `buddy`='$userID' -
ghostrider schrieb:
praktisch kompliziert was aber nicht geht: `userID`='$userID' AND `buddy`='$buddy_id' OR `userID`='$buddy_id' AND `buddy`='$userID'
Wieso sollte das nicht gehn?
Gruß
Stef -
bei `userID`='$userID' AND `buddy`='$buddy_id' OR `userID`='$buddy_id' AND `buddy`='$userID' kommen andere ergebnisse als erwartet weil er das wohl nicht so interpretiert wie ich es verstehe:
[ `userID`='$userID' AND `buddy`='$buddy_id' ] OR [ `userID`='$buddy_id' AND `buddy`='$userID' ]
die klammer sollen mal die Zusammengehörigkeit Demonstrieren... -
Hmm schwer ohne weitere Informationen was dazu zu sagen.
Verstehe ich das richtig dass du eine Tabelle mir den int spalten "userID" und "buddy" hast, in denen die jeweiligen user ids stehen?
und nun willst du wissen ob beispielsweiße der user mit der id 10 mit dem user der id 20 befreundet ist?
dann muss das hier eigentlich funktionieren:
SELECT * FROM buddies WHERE (userID = 20 AND buddy = 10) OR (userID = 10 AND buddy = 20);
-
Anstatt
SELECT * FROM buddies WHERE (userID = 20 AND buddy = 10) OR (userID = 10 AND buddy = 20);
würde ich
SELECT * FROM buddies WHERE userID = 20 AND buddy = 10 OR (userID = 10 AND buddy = 20);
probieren. Ich hatte neulich ein ähnliches Problem welches so behoben werden konnte. SQL scheint mir da etwas komisch zu sein. -
Hey super
Vielen Dank jetz funktioniert es ich war bei dem klammern die ganze Zeit immer auf dem IN tripp, dabei geht das ja auch bei WHERE
Vielen Dank nochma für die schnelle Hilfe....
Gruß Chris -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage