• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ID versteckt übermitteln und als Fremdschlüssel in Mysql-Tabelle schreiben

brainstorm001

Neues Mitglied
Hallo Leute. Habe folgendes Problem. Habe eine Seite erstellt wo ich 3 Dropdown Listen
habe. Diese werden mit Daten aus 2 Datenbanktabellen gefüllt. Das klappt auch alles super.

Mein Problem an der Sache ist das ich die Auswahl in einer seperaten Datenbanktabelle speichern möchte. Ich dazu aber nur die ID als Fremdschlüssel speichern möchte. Im moment wird nur der Name aus der 1. Tabelle als genau der gleiche in die 2. Tabelle quasi übernommen. Das möchte ich aber nicht weil ich dann Werte doppelt habe. Also nur die ID.

Wie übergebe ich die ID hidden und kann diesen Wert dann in meine Tabelle schreiben?

Die beziehungen der Tabellen untereinandern habe ich schon mit phpmyadmin gemacht.

Vielen Dank im vorraus

PHP:
<?php 
include ($_SERVER['DOCUMENT_ROOT']."/projekt_okt2010_2/include/sessionheader.inc.php");
if (@$_SESSION['auth_admin'] != "yes")
{
    header("Location: http://localhost/projekt_okt2010_2/login.php");
    exit();
} 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Projekt anlegen</title>
<link rel="stylesheet" type="text/css" href="http://localhost/projekt_okt2010_2/css/default.css"/>
<link rel="stylesheet" type="text/css" href="http://localhost/projekt_okt2010_2/css/design.css"/>
</head>
<body>

         <br/><h1><center><u>Projekt anlegen</u></center></h1><br/><br/>
         
         
  
    <h3><u>Neues Projekt anlegen</u></h3>
    <form action="" method="POST">
    <input type="text" name="new_project" value="Projektname" onFocus="if(this.value=='Projektname') this.value=''"/>
    
    
   <!--Dragdownmenü Betreuer auswahl--!>    
   
    <?php
    include ($_SERVER['DOCUMENT_ROOT']."/projekt_okt2010_2/intern/admin/include/db_zugriff.inc.php");
    $sql = "SELECT ID, Betreuer FROM betreuer ORDER BY Betreuer";
    $result = mysqli_query($db, $sql);
    
     echo "<select name='betreuer'>";
     echo "<option>Betreuer auswahl:</option>";
            while ($row = mysqli_fetch_assoc($result)) {
             
             foreach ($row as $key => $value) {
                 
         echo "<option>$value</option>";             
                
            }
            }
 
            echo "</select>";
              mysqli_close($db);
    ?>
    
        <?php
    include ($_SERVER['DOCUMENT_ROOT']."/projekt_okt2010_2/intern/admin/include/db_zugriff.inc.php");
    $sql1 = "SELECT Betreuer FROM betreuer";
    $result1 = mysqli_query($db, $sql1);
    
     echo "<select name='betreuer2'>";
     echo "<option>weiterer Betreuer:</option>";
     echo "<option>keine Angaben:</option>";
            while ($row = mysqli_fetch_assoc($result1)) {
             
             foreach ($row as $key => $value1) {
                 
         echo "<option>$value1</option>";             
                
            }
            }
 
            echo "</select>";
              mysqli_close($db);
    ?>
 <!--Dragdownmenü Jahr auswahl--!>
    
     <?php
    include ($_SERVER['DOCUMENT_ROOT']."/projekt_okt2010_2/intern/admin/include/db_zugriff.inc.php");
    $sql2 = "SELECT Jahr FROM jahre";
    $result2 = mysqli_query($db, $sql2);
    
     echo "<select name='jahr'>";
     echo "<option>Jahr auswahl:</option>";
            while ($row = mysqli_fetch_assoc($result2)) {
             
             foreach ($row as $key => $value2) {
                 
         echo "<option>$value2</option>";             
                
            }
            }
 
            echo "</select>";
            
            mysqli_close($db);
            
    ?>
    <br>
    <br>

    <input type="submit" name="send_project" value="Absenden"/>
    
    
    <?php
    if (isset($_POST["send_project"]))
    {
        $fehler = false;
        $fehlertext = "<p>";
        
        if (empty($_POST['new_project']) || $_POST['new_project'] == "Projektname")
        {
            $fehler = true;
            $fehlertext .= "Der Projektname fehlt!<br>";
        }
        if (empty($value['betreuer']))
        {
            $fehler = true;
            $fehlertext .= "Der Betreuer fehlt!<br>";
        }
        
        if (empty($value2['jahr']))
        {
            $fehler = true;
            $fehlertext .= "Das Jahr fehlt!<br>";
        }
        
        if ($fehler)
        {
            echo "$fehlertext</p>";
            die("</body></html>");
        }
        else
        
        {
        include ($_SERVER['DOCUMENT_ROOT']."/projekt_okt2010_2/intern/admin/include/db_zugriff.inc.php");
        $sql2 = "INSERT INTO projekt (ID, Name, BetreuerID, Betreuer2ID, JahrID) VALUES ('', '$_POST[new_project]', '$_POST[betreuer]', '$_POST[betreuer2]', '$_POST[jahr]')";
        mysqli_query($db, $sql2);
        
        if (mysqli_affected_rows($db) > 0)
        {
             echo "<br>";
             echo "<br>";
            $meldung =  "Projekt erfolgreich angelegt!";
            echo "<meta http-equiv='refresh' content='3; URL=http://localhost/projekt_okt2010_2/intern/admin/admin_bereich.php?page=projekt_anlegen'>";
        }
        else
        {
             echo "<br>";
             echo "<br>";
            $meldung =  "Eintrag nicht erfolgreich!";
            echo "<meta http-equiv='refresh' content='3; URL=http://localhost/projekt_okt2010_2/intern/admin/admin_bereich.php?page=projekt_anlegen'>";
        }
        mysqli_close($db);
    }
  }
    
    echo $meldung;
    ?>
      </form>   
                                                               
         
         
                    
</body>
</html>
 
Hey, danke für den Ratschlag, aber denke mein Problem wurde nicht richtig verstanden. Wollte es so haben, das wenn ich einen Namen aus dem DropDown auswähle nur die ID aus der Datenbank in die Tabelle geschrieben wird und das dann der Fremdschlüssel wird. Aber habe es hinbekommen. Musste nur ein bisschen das Dropdownmenü anpassen. So sieht es nun aus.

<?php
include ($_SERVER['DOCUMENT_ROOT']."/projekt_okt2010_2/intern/admin/include/db_zugriff.inc.php");
$sql = "SELECT ID, Betreuer FROM betreuer ORDER BY Betreuer";
$result = mysqli_query($db, $sql);
$result1 = mysqli_query($db, $sql);

echo "<select name='betreuer'>";
echo "<option>Betreuer auswahl:</option>";

while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
echo '<option value="'.$row["ID"].'">'.$row["Betreuer"].'</option>';

}

echo "</select>";

?>
<?php

So wähle ich den Betreuer mit Namen aus, aber nur die ID wird gespeichert.
Vielen Dank
 
Zurück
Oben