Pro Autor soll nur eine ID vergeben werden, auch wenn er schon eingetragen ist

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pro Autor soll nur eine ID vergeben werden, auch wenn er schon eingetragen ist

    ich speichere per formular einen "artist" und ein "Album" ab.
    beides wird unter einer ID abgespeichert.

    angenommen ich targe als artist "Eminem" ein und als Album "The Eminem Show". dann bekommt dieser eintrag die ID 1.
    wenn ich nun aber ein anderes Eminem album eintrage (z.b. artist: Eminem und album: 8 Mile OST), dann wird dieser eintrag unter der ID 2 gespeichert.

    wie kann ich es erreichen, dass wenn der artist doppelt vorkommt, er die ID behält, die er bereits hatte. in diesem fall müßte Eminem die "1" bekommen. wie geht das?
    habe es bis jetzt soweit, das man für jeden artist eine detailansicht besichtigen kann. doch wenn ich dann auf eminem klicke, gibt es bis zu 4 verschiedene detailseiten, weil er einmal die ID 1, 2, 5, und 18 hat.

  • #2
    eine tabelle?
    zwei tabellen?

    entwder du schaust nach, ob der interpret schon drinsteht und trägst ihn nur ein, wenn das nicht der fall ist

    oder du machst die spalte mit dem namen des interpreten unique (am einfachsten mit phpmyadmin)
    Ich denke, also bin ich. - Einige sind trotzdem...

    Comment


    • #3
      habs auf unique umgestellt. aber das ist ja auch schwachsinnig. da kann man ja nix mehr von dem artist eintragen. ich will mehre alben unter einem artist eintragen, der artist soll aber trotzdem immer die selbe ID behalten
      Last edited by jazzdee; 13-07-2003, 23:14.

      Comment


      • #4
        Dann such einfach ob schon was von dem artist eingetragen is wenn ja dann lässt du dir die id anzeigen und verwendest die einfach wieder, wenn nicht dann gibst du ihm die nächste freie id...
        wo is das problem an der sache?
        So schwer is das ja auch nich...
        Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
        (Albert Einstein)

        Comment


        • #5
          Re: Pro Autor soll nur eine ID vergeben werden, auch wenn er schon eingetragen ist

          wieso soll die ID denn überhaupt gleich bleiben?

          wenn du eine übersicht zum artist machen willst, genügt doch eine query mit
          WHERE artist = "Eminem"
          um dir alle alben von eminem auszulesen ...
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Comment


          • #6
            Stimmt....das is dann noch einfacher *gggg*
            Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
            (Albert Einstein)

            Comment


            • #7
              nur wenn ich das so machen würde, müßte ich für jeden artist diese zeile verwenden: also

              WHERE artist = "Eminem"
              WHERE artist = "50 Cent"
              WHERE artist = "Busta Rhymes"
              WHERE artist = "Wu-tang Clan"
              WHERE artist = "Ludacris"

              nur bei 100 artists wird das ne menge arbeit.
              außerdem sollen bald andere user ihre sachen eintragen. dann können die ja schlecht meinen code abändern.......

              Comment


              • #8
                daher macht man das mit formularen

                der benutzer gibt den namen des interpreten/der gruppe in das formular ein und du verwendest dann das, was dir (deinem skript) vom formular gesendet wurde
                Ich denke, also bin ich. - Einige sind trotzdem...

                Comment


                • #9
                  mrhappiness hat recht, formulare wenn du benutzereingaben verarbeiten willst - oder aber dynamisch generierte links und von denen abhängige queries, wenn du z.b. auf der einen seite eine übersicht anzeigen willst, und dann dort links mit details zu einem artist machen willst.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Comment


                  • #10
                    sorry, dass ich mich so dumm anstelle.
                    kann mir jemand mal in meinem code helfen?
                    diese blöde geschichte hält mich total auf.
                    hier mein code:

                    PHP Code:
                    <html>
                    <head>
                    <title>Unbenanntes Dokument</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                    <link href="style.css" rel="stylesheet" type="text/css">
                    </head>
                    <?php
                    //zur datenbank connecten
                    include ("db_connect.php");
                    ?>
                    <body>
                    <form name="Datenbank" method="post" action="db_eintrag.php"> 
                      <table width="800" border="0" cellspacing="0" cellpadding="0">
                        <tr> 
                          <td width="93">Genre:</td>
                          <td width="707"><select name="genre" id="genre">
                              <option>Hip Hop</option>
                              <option>Soul</option>
                              <option>Reggea</option>
                              <option>Rock</option>
                              <option>Pop</option>
                            </select></td>
                        </tr>
                        <tr> 
                          <td>Artist:</td>
                          <td><input name="artist" type="text" id="artist"></td>
                        </tr>
                        <tr> 
                          <td>Album-Titel:</td>
                          <td><input name="albumtitel" type="text" id="albumtitel"></td>
                        </tr>
                        <tr> 
                          <td>Erscheinungsjahr:</td>
                          <td><input name="erscheinungsjahr" type="text" id="erscheinungsjahr"> </td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td><input name="abschicken" type="submit" id="abschicken2" value="Eintragen"></td>
                        </tr>
                      </table>
                    </form>
                    <form name="suchen" method="post" action="suchen.php"> 
                    <table width="800" border="0" cellspacing="0" cellpadding="0">
                      <tr> 
                        <td width="185">Nach Artist suchen:</td>
                        <td width="164"><input name="as" type="text" id="as"></td>
                        <td width="449"><input name="artist_suchen" type="submit" id="artist_suchen" value="Abschicken"></td>
                      </tr>
                      <tr> 
                        <td>Nach Albumtitel suchen</td>
                        <td><input name="abs" type="text" id="abs"></td>
                        <td><input name="album_suchen" type="submit" id="album_suchen" value="Abschicken"></td>
                      </tr>
                    </table></form>
                    <br>
                    <?php
                    if($abschicken)
                    {
                    echo 
                    "Das Album <b>$albumtitel</b> von <b>$artist</b> wurde in die Datenbank aufgenommen.<br> Danke für ihren Eintrag !!! <br>";
                    $genre $HTTP_POST_VARS["genre"];
                    $artist $HTTP_POST_VARS["artist"];
                    $albumtitel $HTTP_POST_VARS["albumtitel"];
                    $erscheinungsjahr $HTTP_POST_VARS["erscheinungsjahr"];
                    $eintrag "INSERT INTO Archiv (genre, artist, albumtitel, erscheinungsjahr) VALUES ('$genre', '$artist', '$albumtitel', '$erscheinungsjahr')";
                    $eintragen mysql_query($eintrag);
                    $abfrage "SELECT * FROM Archiv"//die bestimmten rows werden gesucht (in diesem fall die komplette tablelle)
                    $auslesen mysql_query($abfrage); //die ausgewählten rows bzw. die tabelle wird ausgelesen
                    $anzahl mysql_num_rows($auslesen); //es wird die anzahl der db einträge ausgerechnet
                    echo "Insgesamt sind nun $anzahl Einträge in der Datenbank zu finden<br><br>";
                    }
                    ?>
                    <br>
                    <br>
                    <table width="800" border="0" cellspacing="0" cellpadding="0">
                      <tr> 
                        <td width="234"><strong>Artist:</strong></td>
                        <td width="314"><strong>Albumtitel: </strong></td>
                        <td width="138"><strong>Genre: </strong></td>
                        <td width="112"><strong>Erscheinungsjahr:</strong></td>
                      </tr>
                      <tr> 
                        <td>
                          <?php
                    $abfrage 
                    "SELECT * FROM Archiv";
                    $auslesen mysql_query($abfrage);
                    while (
                    $daten mysql_fetch_array($auslesen)) 

                    ?>
                    <a href="daten_artist.php?id=<? echo $daten[eintrag_ID];?>"><? echo $daten[artist] . "<br>"; ?>
                    </a>
                    <? } ?>
                        </td>
                        <td> 
                        <?php
                    $abfrage 
                    "SELECT * FROM Archiv";
                    $auslesen mysql_query($abfrage);
                    while(
                    $row mysql_fetch_array($auslesen))
                        {
                        echo 
                    $row['albumtitel'] . "<br>";
                        }
                        
                    ?>
                        </td>
                        <td> 
                        <?php
                    $abfrage 
                    "SELECT * FROM Archiv";
                    $auslesen mysql_query($abfrage);
                    while(
                    $row mysql_fetch_array($auslesen))
                        {
                        echo 
                    $row['genre'] . "<br>";
                        }
                        
                    ?>
                        </td>
                        <td>
                        <?php
                    $abfrage 
                    "SELECT * FROM Archiv";
                    $auslesen mysql_query($abfrage);
                    while(
                    $row mysql_fetch_array($auslesen))
                        {
                        echo 
                    $row['erscheinungsjahr'] . "<br>";
                        }
                        
                    mysql_close();
                        
                    ?>
                        </td>
                      </tr>
                    </table>
                    </body>
                    </html>

                    Comment


                    • #11
                      Original geschrieben von jazzdee
                      kann mir jemand mal in meinem code helfen?
                      und _wobei_?

                      (leute, lernt doch bitte endlich mal zu sagen, was zum teufel ihr eigentlich wollt bzw. für ein problem habt ...)
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Comment


                      • #12
                        hier wird doch schon die ganze zeit über mein problem gesprochen. die überschrift sagt es und der erste thread auch. die antworten der anderen leute versuchen auch auf meine frage einzugehen.

                        aber dann nochmal.
                        ich möchte einen eintrag in die db vornehmen.
                        gespeichert wird der artist, das album und die dazugehörige id.
                        wenn ich nun aber 2 alben von einem artist habe, würde ich gerne die ID des artist behalten, die er bereits beim ersten abspeichern hatte.

                        Comment


                        • #13
                          und nochmal:

                          da dein album sehr wahrscheinlich auch ne id haben wird, hast du vermutlich zwei tabellen. eine für die interpreten und eine für die alben

                          dann schau in der interpretentabelle nach, ob der eintrag vorhanden ist.

                          t das der fall trägst du diese id in die albentabell ein, wenn nicht, trägstdu erst den interpret in die interpretentabele ein und liest dann dessen id aus um sie dann in die albentabelle eintragen zu können

                          wenn ich mich bei irgendwas vertan hab, dann schreib einfach, wie deine tabelle(n) aufgebaut ist/sind
                          EDIT:
                          birngt so glaub ich nich wirklich viel

                          poste mal die struktur deiner tabellen (in phpmyadmin desc tabellenname)

                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Comment


                          • #14
                            hab nur eine tabelle:
                            # phpMyAdmin MySQL-Dump
                            # version 2.4.0
                            # http://www.phpmyadmin.net/ (download page)
                            #
                            # Host: localhost
                            # Erstellungszeit: 14. Juli 2003 um 10:58
                            # Server Version: 3.23.49
                            # PHP-Version: 4.1.2
                            # Datenbank: `usr_srv02556_1`
                            # --------------------------------------------------------

                            #
                            # Tabellenstruktur für Tabelle `Archiv`
                            #

                            CREATE TABLE Archiv (
                            eintrag_ID int(11) NOT NULL auto_increment,
                            genre varchar(100) NOT NULL default '',
                            artist varchar(100) NOT NULL default '',
                            albumtitel varchar(100) NOT NULL default '',
                            erscheinungsjahr int(4) NOT NULL default '0',
                            tracklist text NOT NULL,
                            PRIMARY KEY (eintrag_ID),
                            UNIQUE KEY albumtitel (albumtitel)
                            ) TYPE=MyISAM COMMENT='Tabelle zum Eintragen meiner Alben';
                            aber wenn niemand eine lösung findet die ich realisieren kann, ist es auch nicht so schlimm. habe es nun so, dass man sich für jedes album eine detailansicht anzeigen lassen kann. die artist details lasse ich dann erstmal

                            Comment


                            • #15
                              lass mich raten: du willst, dass eintrag_id für jeden interpreten glöeich ist?

                              wird nicht gehen, da eintrag_id der primärschlüsselist und daher eindeutig sein muss

                              daher ja mein vorschlag mit zwei tabellen
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Comment

                              Working...
                              X