Mysql doppelte Einräge --> Problem



  • Hi,
    ich habe eine Tabelle mit 2 Feldern : Punkt1, Punkt2

    In Punkt1 steht z.B. (ist aber variabel):

    Fussball
    Basketball
    Fussball
    Handball
    Fussball

    In Punkt2 steht:
    Peter
    Tobi
    Jens
    Michi
    Schorsch

    Es soll folgendes Ausgegeben werden:

    Fussball: Peter Jens Schorsch
    Handball: Michi
    Basketball: Tobi

    Wenn ich es aber Query kommt das:
    Fussball: Peter
    Basketball: Tobi
    Fussball: Jens
    Handball: Michi
    Fussball: Schorsch

    Punkt1 soll also nur 1 mal ausgegeben werden, aber der wert der bei der id von Punkt1 soll auch ausgegeben werden!!

    Vielen Dank im vorauss!



  • Ich würde es in zwei Tabelle Splitten.

    Tabelle 1:

    Feld1     Feld2
    (index)   (sportart)
      1        Fußball
      2        Handball
      3        Basketball
    

    Tabelle 2:

    Feld1     Feld2    Feld3
    (index)   (name)   (sportart)
       1      Peter        1
       2      Tobi         3
       3      Jens         1
       4      Michi        2
       5      Schorsch     1
    

    In der Tabelle 2 ist das Feld3 (Sportart), da kommt dann das index von der Tabelle 1 rein..

    Und das ganze abfragenm halt..



  • Vielen Dank für deine Antwort.
    Nur wie bekomme ich die ID von Sportart in die Tabelle mit den Namen? Hast du vielleicht ein Beispiel für mich.



  • Hi.

    Hier ein Beispiel Code:
    eintragen.php:

    <?php
      mysql_connect("localhost","smu","coolmann") or die("Keine Verbindung moeglich");
      mysql_select_db("test") or die ("Die Datenbank existiert nicht");
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
    <html>
      <head>
        <title>Spieler Eintragen</title>
      </head>
      <body>
        <form action="in_db.php" method="POST">
          Spielername: <input type="text" name="spieler"><br>
          <br>
          <?php
            $resource = mysql_query("SELECT `index`,`sportart`,`checkbox_name` FROM `sport`");
            while($result = mysql_fetch_object($resource))
            {
              ?>
              <input type="checkbox" name="<?php echo $result->checkbox_name; ?>" value="<?php echo $result->index; ?>"> <?php echo $result->sportart; ?><br>
              <?php
            }
          ?>
          <br>
          <input type="submit"><input type="reset">
        </form>
      </body>
    </html>
    

    in_db.php:

    <?php
      mysql_connect("localhost","smu","coolmann") or die("Keine Verbindung moeglich");
      mysql_select_db("test") or die ("Die Datenbank existiert nicht");
      $resource = mysql_query("SELECT `index`,`sportart`,`checkbox_name` FROM `sport`");
      while($result = mysql_fetch_object($resource))
      {
        echo "Spielt ".$spieler." ".$result->sportart.": ";
        $checkbox = $result->checkbox_name;
        $checkbox = $$checkbox;
        if($checkbox != NULL)
        {
          echo "Ja";
          mysql_query("INSERT INTO `spieler` (`name`,`sportart_id`) VALUES ('".$spieler."','".$checkbox."')");
        }
        echo "<br>";
      }
    ?>
    

    anzeigen.php:

    <?php
      mysql_connect("localhost","smu","coolmann") or die("Keine Verbindung moeglich");
      mysql_select_db("test") or die ("Die Datenbank existiert nicht");
      $resource = mysql_query("SELECT `index`,`sportart` FROM `sport`");
      while($result = mysql_fetch_object($resource))
      {
        echo "Sportart: ".$result->sportart;
        $resource_spieler = mysql_query("SELECT `name` FROM `spieler` WHERE `sportart_id` = '".$result->index."'");
        while($result_spieler = mysql_Fetch_object($resource_spieler))
        {
          echo " ".$result_spieler->name;
        }
        echo "<br>";
      }
    ?>
    

    hier das SQL-File für mySQL (Bitte benutzte phpmyadmin dazu):

    # phpMyAdmin MySQL-Dump
    # version 2.3.0
    # http://phpwizard.net/phpMyAdmin/
    # http://www.phpmyadmin.net/ (download page)
    #
    # Host: localhost
    # Erstellungszeit: 04. Dezember 2002 um 10:33
    # Server Version: 3.23.49
    # PHP-Version: 4.2.3
    # Datenbank: `test`
    # --------------------------------------------------------
    
    #
    # Tabellenstruktur für Tabelle `spieler`
    #
    
    DROP TABLE IF EXISTS `spieler`;
    CREATE TABLE `spieler` (
      `index` bigint(20) NOT NULL auto_increment,
      `name` varchar(150) NOT NULL default '',
      `sportart_id` bigint(20) NOT NULL default '0',
      PRIMARY KEY  (`index`)
    ) TYPE=MyISAM;
    
    #
    # Daten für Tabelle `spieler`
    #
    
    INSERT INTO `spieler` (`index`, `name`, `sportart_id`) VALUES (1, 'Daniel', 1),
    (2, 'Daniel', 2),
    (3, 'Peter', 1),
    (4, 'Peter', 3),
    (5, 'Müller', 2),
    (6, 'Müller', 3);
    # --------------------------------------------------------
    
    #
    # Tabellenstruktur für Tabelle `sport`
    #
    
    DROP TABLE IF EXISTS `sport`;
    CREATE TABLE `sport` (
      `index` bigint(20) NOT NULL auto_increment,
      `sportart` varchar(100) NOT NULL default '',
      `checkbox_name` varchar(30) NOT NULL default '',
      PRIMARY KEY  (`index`)
    ) TYPE=MyISAM;
    
    #
    # Daten für Tabelle `sport`
    #
    
    INSERT INTO `sport` (`index`, `sportart`, `checkbox_name`) VALUES (1, 'Fußball', 'fussball'),
    (2, 'Handball', 'handball'),
    (3, 'Basketball', 'basketball');
    

    Dies ist ein Beispiel-Code...
    Bei mein Beispiel bräuchtest du 3 Tabellen.
    Aber wie du das dann machst denke ich mir, das du das dann weißt wie, falls fragen da soind, frag nach..

    Gruß DJ BlackEagle


Anmelden zum Antworten