Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL-Abfragge zeigt zu viele Ergebnisse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL-Abfragge zeigt zu viele Ergebnisse

    Hallo,

    wenn ich diese Abfrage ausführe:
    Code:
    SELECT coinr.link,fribi.link,rewardmix.link,cashtown.link,readbud.link from coinr,fribi,rewardmix,cashtown,readbud WHERE coinr.username='$_SESSION[user]' OR fribi.username='$_SESSION[user]' OR rewardmix.username='$_SESSION[user]' OR cashtown.username='$_SESSION[user]' OR readbud.username='$_SESSION[user]'
    zeigt MySQL zu viele Ergebnisse an(auch die, bei denen username nicht $_SESSION[user] ist).

    Wenn ich das so mache:
    Code:
    SELECT coinr.link,fribi.link,rewardmix.link,cashtown.link,readbud.link from coinr,fribi,rewardmix,cashtown,readbud WHERE coinr.username='djlars' AND fribi.username='djlars' AND rewardmix.username='djlars' AND cashtown.username='djlars' AND readbud.username='djlars'
    zeigt er mir ein leeres Resultat (im ersten Beispiel hab ich natürlich anstelle von $_SESSION[user] djlars eingesetzt )

  • #2
    OR heißt oder
    AND heißt und

    Kommentar


    • #3
      Du weißt was ein Join ist? Sowas machst du da grade... und weißt du was passiert wenn man Tabellen ohne Join Bedingung joint? Man bekommt das Kreuzprodukt und das ist wahrscheinlich selten gewünscht.

      Was du suchst heißt UNION...

      Kommentar


      • #4
        Ich würde bei solchen Abfragen schon auf JOIN zurückgreifen.
        Ansonsten solltest du statt einer Abfrage pro Tabelle eine machen und diese gegebenenfalls mit UNION verbinden.
        Außerdem scheint mir deine Datenbank nicht besonders gut aufgebaut, wenn du an so vielen Stellen den Nutzernamen hast.

        So wäre das besser:

        Tabelle `user`

        user_id: int, index
        user_name: string


        Tabelle `tabelle_2`
        user_id: int
        Spalte2: typ


        Tabelle `tabelle_3`
        user_id: int
        Spalte3: typ
        [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
        [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

        Kommentar


        • #5
          Ich hätte anstatt vom username auch die uid genommen, aber dann müsste ich ja nochmal wieder ne extra abfrage machen,um den username rauszufinden und ich befürchte, dass die website das bei vielen besuchern nicht mitmacht.

          So genau kenn ich mich mit mysql auch nicht aus. Ich muss also die links aus den tabellen oben auslesen wo der benutername der user der session ist. Kann mir dazu einer ne abfrage schreiben? Von join usw.. hab ich noch nix gehört ..
          Thx

          Kommentar


          • #6
            Code:
            SELECT t1.user_name, t2.value
            FROM tabelle t1
            LEFT JOIN tabelle t2 ON t2.user_id = t1.user_id
            usw.
            WHERE t1.user_id = $_SESSION[user_id]

            Kommentar

            Lädt...
            X