abfrage von einträgen mit ids aus einem array

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

  • abfrage von einträgen mit ids aus einem array

    hallo,
    ich hab das forum schon kräftig durchsucht aber nichts dergleichen gefunden.

    folgendes problem:

    ich hab 2 tabellen: Users und Filme

    aufbau tabelle Users:

    ID USER FAVORITEN
    1 user1 23.4.188.6
    2 user2 5.6.89
    usw.


    afbau tabelle Filme:

    FILMID FILMTITEL
    1 film1
    2 film2
    3 film3
    usw.


    in der Zelle FAVORITEN befinden sich IDs von Filmen aus der tabelle Filme. Nun will ich zu den Daten eines bestimmten Users auch noch die Daten der Filme erhalten, deren IDs in der Zelle FAVORITEN stehen.

    Also bei User2 wären es dann die Filme mit der ID 5, 6 und 89.
    Die Userdaten abfragen is ja kein problem. ich hab das bis jetzt so gelöst:

    PHP-Code:
    $SQL="SELECT * FROM users WHERE UserName='".$_GET['user']."'"
    $RESULT=mysql_query($SQL);
    $LINE=mysql_fetch_array($RESULT); 
    Und die Filmids unter FAVORITEN hab ich in n array gepackt:

    PHP-Code:
    $FILMID=explode("."$LINE['FAVORITEN']); 
    doch jetzt weiß ich nicht weiter..wie kann ich alle filme aus der tabelle ansprechen die die ids haben die in der zelle favoriten stehen?

    hoffe ich hab das verständlich erklärt und hoffe mir kann jemand helfen.

    grüße
    cid.

  • #2
    Die Funktion die du suchst heißt IN()

    Aber gewöhn dir mal lieber an deine Tabelle zu normalisieren.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Aber gewöhn dir mal lieber an deine Tabelle zu normalisieren. [/B]
      okay werd mal nach IN() suchen.

      wie meinst du das "normalisieren"?

      Kommentar


      • #4
        Original geschrieben von cid
        wie meinst du das "normalisieren"?
        auch danach kann man zuerst Suchen!

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          auch danach kann man zuerst Suchen!
          hab nach beidem gesucht und zu IN() nichts gefunden....
          hättest vielleicht ne erklärung, oder n beispiel?

          das Normalisieren tut jetzt nichts zur sache. Is zwar eine gute Idee, aber das werd ich nicht jetzt machen sondern wann anders.

          Kommentar


          • #6
            WHERE id IN(1,2,3,...)

            Kommentar


            • #7
              da ja die filmids in dem array $FILMID drinnen sind muss ich das jetzt so machen oder wie?

              PHP-Code:
              $SQL=SELECT FROM Filme WHERE FILMID IN($FILMID

              Kommentar


              • #8
                ich bin ziemlich sicher dass eine 'normalisierte' Datenbank nicht mehr zu tun gibt als deine 'arrayisierte'.

                Kommentar


                • #9
                  Original geschrieben von sternm
                  ich bin ziemlich sicher dass eine 'normalisierte' Datenbank nicht mehr zu tun gibt als deine 'arrayisierte'.
                  ja mag sein, aber es geht hier jetzt nicht darum meine datenbankstruktur zu kritisieren sondern mir bitte bei meinem problem zu helfen.

                  Kommentar


                  • #10
                    PHP-Code:
                    $sql="SELECT Filme.* FROM Filme, Users WHERE Users.USER='".$_GET['user']."' 
                           AND Filme.FILMID IN Users.FAVORITEN"

                    Kommentar


                    • #11
                      noch besser:
                      PHP-Code:
                      $sql="SELECT Filme.FILMTITEL FROM Filme, Users WHERE Users.USER='".$_GET['user']."' 
                             AND Filme.FILMID IN Users.FAVORITEN"

                      Kommentar


                      • #12
                        Original geschrieben von sternm
                        noch besser:
                        PHP-Code:
                        $sql="SELECT Filme.FILMTITEL FROM Filme, Users WHERE Users.USER='".$_GET['user']."' 
                               AND Filme.FILMID IN Users.FAVORITEN"

                        das funktioniert nicht

                        mein code bis jetzt:
                        PHP-Code:
                         $SQL="SELECT * FROM Users WHERE USER='".$_GET['user']."'";
                          
                        $RESULT=mysql_query($SQL);
                        $LINE=mysql_fetch_array($RESULT);
                         
                        $FILMID=explode("."$LINE['FAVORITEN']);

                          
                        $XSQL="SELECT Filme.FILMTITEL FROM Filme, Users WHERE Users.USER='".$_GET['user']."' 
                               AND Filme.FILMID IN Users.FAVORITEN"
                        ;
                               
                          
                        $XRESULT=mysql_query($XSQL);

                          
                          echo 
                        '<table>
                        <tr><td>user:</td><td>'
                        .$LINE['UserName'].'</td></tr>
                        <tr><td>usermail:</td><td>'
                        .$LINE['UserMail'].'</td></tr>
                        </table>'
                        ;

                        echo 
                        '<p>Favoriten</p><ul>';
                        while (
                        $XLINE=mysql_fetch_array($XRESULT))
                        {
                        echo 
                        '<li>$XLINE['FILMTITEL']</li>';
                        }

                        echo 
                        '</ul>'

                        Kommentar


                        • #13
                          Man, befolge unsere Regeln. Mach Testausgaben und poste Fehlermeldungen. Immer das gleiche.

                          Kommentar


                          • #14
                            [QUOTE]Original geschrieben von cid
                            [B]das funktioniert nicht

                            mein code bis jetzt:
                            $FILMID=explode(".", $LINE['FAVORITEN']);

                            es ist ja auch eine schnapsidee, die favoriten mit Punkten zu trennen anstatt mit space. Soviel im Moment.

                            Kommentar


                            • #15
                              Variante:

                              PHP-Code:
                              $XSQL="SELECT Filme.FILMTITEL FROM Filme, Users WHERE Users.USER='{$_GET['user']}
                                     AND Filme.FILMID IN REPLACE(Users.FAVORITEN, '.' , ',')"

                              Zuletzt geändert von sternm; 20.09.2006, 01:14.

                              Kommentar

                              Lädt...
                              X