3 Bedingungen in einer MySQL Afrage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
bedingung
code
dank
eindeutig nix
entsprechen
fehlerquelle
klammern
menge
million
nachzulesen
resultat
richtige wahl
spalten
tabelle
tag
url
versucht code
zahlreichen antworten
-
Hallo,
ich hab ein Problem, undzwar möchte ich aus meiner tag/tabelle">Tabelle (besitzt 6 Spalten) Alle Werte unter 3 Bedingungen abfragen.
ich habe | id | username | class | schoollocation | schooltype | password |
Davon möchte ich in einem script Benutzer abfragen, welche zufällig dieselben werte haben. Das habe ich so vergebens versucht:
allerdings liefert mir das stets 0 Resultate zurück... Obwohl natürlich etwas in der DB steht....$sql = 'SELECT * FROM `mt_users` WHERE `class` = "'.$row['class'].'" AND `schooltype` = "'.$row['schooltype'].'" AND `schoollocation` = "'.$row['schoollocation'].'"';
Dasselbe hab ich nochmal mit nur 2 Bedingungen also
und das hat geklappt. Also, wie kann ich eine Abfrage starten in der 3 Bedingungen gleichzeitig verarbeitet werden? Google hat da irgendetwas mit JOIN und jede mengen an Klammern ausgespuckt, aber das hat mir nicht weitergeholfen, da keine Erklärung dabeistsandBedingung1 = "xyz" AND Bedingung2 = "asdf"
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
schon mit Klammern probiert?
$sql = 'SELECT * FROM `mt_users` WHERE (`class` = "'.$row['class'].'" AND `schooltype` = "'.$row['schooltype'].'" AND `schoollocation` = "'.$row['schoollocation'].') "';
-
sollen denn alle drei bedingungen zutreffen oder nur eine einzige??? sonst wäre ja "OR" die richtige wahl....
an der klammer kanns nämlich eigentlich nicht liegen, bei mir klappt das immer ohne -
@limabone
Dasselbe hab ich nochmal mit nur 2 Bedingungen also
ja ... welche sind denn die bedingungen 1., 2. und 3.? gilt die reihenfolge vom sql? wenn ja, dann ist offensichtlich :o) : es gibt kein schollocation, wo class UND schooltype entsprechen!
und das hat geklappt.Bedingung1 = "xyz" AND Bedingung2 = "asdf"
[wie viele millionen einwohner hat D? un in wie vielen schulen (schollocation) lernen diese? ... ???]
sonst: zerpflücke deinen sql nicht mit ` ' " . und so zeugs! es gibt selten bedarf dafür ... nachzulesen da!
daher reicht es aus zu schreiben:
ist doch einfacher zu lesen! oder?$sql = "SELECT * FROM mt_users WHERE class=\"{$row['class']}\" AND schooltype=\"{$row['schooltype']}\" AND schoollocation=\"{$row['schoollocation']}\"";
es ist allerdings nicht klar, ob führende oder angehängte spaces in der datenbank mit abgespeichert sind, was auch eine fehlerquelle sein kann. (amatörfrage: ist in allen $row[,,,] etwas drinnen??? wer weißt das ohne überprüfung ...!)
lg
joseph
Beitrag zuletzt geändert: 13.10.2010 2:22:56 von czibere -
praktischer wäre es, diese Tabelle zu normalisieren...
class | schoollocation | schooltype
haben in der tabelle eindeutig nix zu suchen. Normalisiert klappts auch mit den Abfragen besser^^ -
So danke für die zahlreichen Antworten!
Ich hab gleich das erste Probiert und es hat zwar anfangs nicht geklappt. Der Fehler lag bei mir, ein winziger Spaltennamensfehler war es. Ich hab aus versehen die Spalte, aus der mir $row[] geladen werden sollte in MySQL Großgeschrieben, darauf kam ich aber erst, nachdem ich phpMyAdmin am nächsten Tag aufgerufen habe. Bis jetzt fand ich auch keine Zeit zurückzuschreiben, aber danke euch -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage