MySql mit id auslesen und zu passende felder zu ordnen

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

  • MySql mit id auslesen und zu passende felder zu ordnen

    Hallo zusammen,

    ich habe da eine frage zu einer mysql datenbank, ich zeig euch erst mal wie die aufgebaut ist:



    ############################
    # ID # Interpret # Titel # Album # Text #
    ############################
    # 1 # ABBA # blabla # bla # blablablabla #
    ############################
    # 2 # ABBA # blabla # bla # blablablabla #
    ############################
    # 3 # ABBA # blabla # bla # blablablabla #
    ############################
    # 4 # AC/DC # blabla # bla # blablablabla#
    ############################

    so sieht die datenbank ungefähr aus, jetzt hab ich das problem das wenn ich bei meiner such, z. B. ABBA reinschreibe er dann schon ABBA bringt aber nicht mit der dazugehörigen ID so wie ich des möchte, sonder immer die letzt in meinem fall wäre das jetzt die 2 (bin mir da aber nicht 100% sicher ob es immer die letzte ist)

    des ist mein code:

    PHP-Code:
    if($suchbegriff != "")
    {
               
    $query =  "SELECT * FROM lyrics WHERE Interpret LIKE '$suchbegriff'" or die ("Suche geht nicht!");
               
    $result mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());


            while(
    $rmysql_fetch_array($result))
            {
                 
    $id $r['ID'] ;
            }

               
    $query1 =  "SELECT * FROM lyrics WHERE Interpret LIKE '$suchbegriff'" or die ("Suche geht nicht!");
               
    $result1 mysql_query($query1) or die("Anfrage fehlgeschlagen: " mysql_error());


             while(
    $r1 mysql_fetch_array($result1))
             {
                 echo 
    "<a href=lyricsshow.php?ID=$id>"$r1['Interpret'] ."</a><br>";
             }


    kann mir da jetzt jemand helfen und mir sagen was ich da falsch gemacht habe, wie ihr nämlich in der zweiten while schleife seht soll jeder gefundene Interpret dann auf lyricsshow.php?ID= seine ID geleitet werden.

    bin noch neu was php und mysql angeht also bitte nicht zu kompliziert erklären, sonst bin ich danach auch nicht schlauer


    mfg
    dominator

  • #2
    Re: MySql mit id auslesen und zu passende felder zu ordnen

    Original geschrieben von dominator
    kann mir da jetzt jemand helfen und mir sagen was ich da falsch gemacht habe
    dein konzept hat einen denkfehler.
    wie ihr nämlich in der zweiten while schleife seht soll jeder gefundene Interpret dann auf lyricsshow.php?ID= seine ID geleitet werden.
    was heisst hier seine ID?
    deine interpreten haben doch gar keine eindeutige ID?

    und die selbe query zwei mal auszuführen ist auch quatsch.


    also, mach dir erst mal selber klar, was du eigentlich erreichen willst - mir scheint, das hast du bisher noch nicht.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ich glaub du verstehs was nicht, ich möchte Lyrics (Songtexte) in der datenbank speichern, und da kann es ja mal vorkommen das ein Interpret zwei mal vohanden ist, (mit einem anderen titel und anderem song) und ich möchte wenn man bei der suche einen Interpreten angibt der öfter vorhanden ist dann sollte des so aussehen:

      Interpret - Songtitel1
      Interpret - Songtitel2
      Interpret - Songtitel3

      und wenn der Interpret mit dem songtitel 1 die id 18 hat dann soll man auf lyricsshow?ID=18 kommen wenn man drauf klickt.

      Und was meinst du damit das da keine eigene ID vorhanden ist? Jede zeile (Interpret, Titel, Album, Songtext) hat eine eigene id die es nur einmal in dieser tabelle vorhanden ist,

      wenn es da noch eine ander id gibt, dann musst du mir das genauer erklären, weil dann weiß ich nicht was du meinst.


      mfg
      dominator

      Kommentar


      • #4
        Auch wenn ich ein Befürworter der Ausgabe von Fehlermeldungen bin
        $query =__"SELECT * FROM lyrics WHERE Interpret LIKE '$suchbegriff'" or die ("Suche geht nicht!");
        gibt wenig Sinn.

        hast du eine zweite Tabelle für die Interpreten?

        Offe

        Kommentar


        • #5
          nein ich habe alles in der lyrics tabelle aber des mit den fehler meldungen mache ich meist nur damit ich weiß wenn nichts geht woran es liegt die kommen dann weg oder werden ausgebessert.

          mfg
          dominator

          Kommentar


          • #6
            Original geschrieben von dominator
            Und was meinst du damit das da keine eigene ID vorhanden ist?
            du hast von der ID des interpreten gesprochen - dieser hat bei dir aber keine eindeutige ID.

            du meintest also stattdessen die ID des entsprechenden lyrics-eintrages, OK.

            jetzt hab ich das problem das wenn ich bei meiner such, z. B. ABBA reinschreibe er dann schon ABBA bringt aber nicht mit der dazugehörigen ID so wie ich des möchte, sonder immer die letzt
            kein wunder, in der schleife

            while($r= mysql_fetch_array($result))
            {
            $id = $r['ID'] ;
            }

            überschreibst du deine variable $id ja immer mit der aus dem aktuellen datensatz, so dass am ende nur noch die des letzten drinsteht.


            aber wie gesagt, zwei queries sind doch hier vollkommen überflüssig.


            PHP-Code:
            $query =  "SELECT * FROM lyrics WHERE Interpret LIKE '$suchbegriff'";
            $result mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());

            while(
            $rmysql_fetch_array($result))
            {
               echo 
            '<a href="lyricsshow.php?ID='.$r['ID'].'">'.$r['Interpret'].'</a><br>';

            sollte m.E. ausreichen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              des ist genau das was ich gemeint habe, es funktioniert genau so wie ich mir des vorgestellt haben tausend dank.


              mfg
              dominator

              Kommentar

              Lädt...
              X