kostenloser Webspace werbefrei: lima-city


3 Bedingungen in einer MySQL Afrage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    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:
    $sql = 'SELECT * FROM `mt_users` WHERE `class` = "'.$row['class'].'" AND `schooltype` = "'.$row['schooltype'].'" AND `schoollocation` = "'.$row['schoollocation'].'"';
    allerdings liefert mir das stets 0 Resultate zurück... Obwohl natürlich etwas in der DB steht....
    Dasselbe hab ich nochmal mit nur 2 Bedingungen also
    Bedingung1 = "xyz" AND Bedingung2 = "asdf"
    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 dabeistsand :angel:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. schon mit Klammern probiert?
    $sql = 'SELECT * FROM `mt_users` WHERE  (`class` = "'.$row['class'].'" AND `schooltype` = "'.$row['schooltype'].'" AND `schoollocation` = "'.$row['schoollocation'].') "';
  4. 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
  5. @limabone
    Dasselbe hab ich nochmal mit nur 2 Bedingungen also
    Bedingung1 = "xyz" AND Bedingung2 = "asdf"
    und das hat geklappt.
    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!
    [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:
    $sql = "SELECT *
    FROM mt_users
    WHERE class=\"{$row['class']}\" AND
          schooltype=\"{$row['schooltype']}\" AND
          schoollocation=\"{$row['schoollocation']}\"";
    ist doch einfacher zu lesen! oder?
    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
  6. 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^^
  7. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    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 :angel::thumb::lol:
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!