Verknüpfung von zwei Tabellen mit Auswahlmenü

fruchtgummi

Mitglied
Hallo,

bin immer noch bei meiner PC-Zeitschrift. Über ein Formular soll man nun die Datensätze in die Datenbank eintragen können. Ich habe ja nun eine Haupttabelle MeineFilme und meine Nebentabelle vhsdvd, die mit der Haupttabelle verknüpft ist.

Aber ich kriege das mit dem Auswahlmenü nicht hin. Es heißt, es sollen die entsprechenden Werte, die bei vhsdvd eintragen sind - nämlich die Auswahlen "DVD" oder "VHS", dann in dem Klappmenü erscheinen. Das tun sie jedoch nicht, siehe Bildchen in der Anlage. Es ging aus dem Script aus dem Heft nicht hervor, wie das geht:

Ein Ausschnitt aus dem Eingabeformular:

PHP:
<td>VHS/DVD?</td>
	<td><select name="DVDVHS" {$DVDVHSfeld}></select></td>
	</tr>
	<tr>
	<td></td>
	<td><input type="submit" value="Daten eintragen" 
name="submit"></td>

Das ist dann eingabe.php:

PHP:
<?php
include("zugriff.inc.php");
if (isset($_POST['submit'])) {
    if (empty($_POST['Filmtitel'])) {
        echo "<p>Bitte <b>Filmtitel</b> angeben!</p>";
    } else if (strlen($_POST['Filmtitel'])<2) {
        echo "<p>Der Filmtitel muss mindestens <b>2</b> Zeichen lang sein!</p>";
    } else {
        $sql = "INSERT INTO MeineFilme (Filmtitel, Regisseur, Schauspieler, Musik, 
Buch, Drehbuch, Dauer, Jahr, Land, Wahrheitsgehalt, FSK, Love, Studio, DVDVHS )
VALUES ('$_POST[Filmtitel]', '$_POST[Regisseur]', '$_POST[Schauspieler]', 
'$_POST[Musik]', '$_POST[Buch]', '$_POST[Drehbuch]', '$_POST[Dauer]',
'$_POST[Jahr]', '$_POST[Land]', '$_POST[Wahrheitsgehalt]', '$_POST[FSK]',
'$_POST[Love]', '$_POST[Studio]', '$_POST[DVDVHS]')";
        $result = mysql_query($sql);
        if ($result) {
            echo "<p>Dateneingabe erfolgreich!</p>";
        } else {
            echo "<p>Dateneingabe <b>nicht</b> erfolgreich!</p>";
        } 
    } 
    echo "[ <a href='javascript:history.back()'>Zurück</a> ] - 
    [ <a href='eingabeform.php'>Neuen Datensatz eintragen</a> ]";
} else {
    $sql2 = "SELECT * FROM vhsdvd";
    $result2 = mysql_query($sql2);
    $DVDVHSfeld = "";
    while ($row = mysql_fetch_assoc($result2)) {
        $DVDVHSfeld .= "<option value='$row[id]'>$row[DVDVHS]</option>\n";
    }
} 
mysql_close($dp);
?>

Warum klappt das nicht? Er müsste doch in der Zeile mit option value den Wert aus der Tabelle vhsdvd übernehmen?

Wäre wieder super dankbar für eure Hilfe...
Viele Grüße
fruchtgummi
 

Anhänge

  • leeres-aufklappmenu.gif
    leeres-aufklappmenu.gif
    1,2 KB · Aufrufe: 58
Zuletzt bearbeitet:
Hi,

Code:
<td>VHS/DVD?</td> 
    <td><select name="DVDVHS" {$DVDVHSfeld}></select></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td><input type="submit" value="Daten eintragen" 
name="submit"></td>

ist dieser HTML COde in PHP eingebunden oder standalone?

im PHP Code:
Code:
<td>VHS/DVD?</td> 
    <td><select name="DVDVHS">$DVDVHSfeld</select></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td><input type="submit" value="Daten eintragen" 
name="submit"></td>

Standalone:
Code:
<td>VHS/DVD?</td> 
    <td><select name="DVDVHS"><? echo $DVDVHSfeld; ?></select></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td><input type="submit" value="Daten eintragen" 
name="submit"></td>
 
Hallo,

die Seite heißt eingabeform.php und der komplette Code dieser Seite lautet so:

Code:
<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive 5">
		<title>Willkommen bei Adobe GoLive 5</title>
	</head>

	<body bgcolor="#ffffff">
		<form name="FormName" action="eingabe.php" method="post">
			<table border="1" cellpadding="0" cellspacing="2">
				<tr>
					<td>Filmtitel:</td>
					<td><input type="text" name="Filmtitel" size="35"></td>
				</tr>
				<tr>
					<td>Regisseur:</td>
					<td><input type="text" name="Regisseur" size="35"></td>
				</tr>
				<tr>
					<td valign="top">Schauspieler:</td>
					<td><textarea name="Schauspieler" cols="40" rows="6"></textarea></td>
				</tr>
				<tr>
					<td>Filmmusik von:</td>
					<td><input type="text" name="Musik" size="24"></td>
				</tr>
				<tr>
					<td>Buch:</td>
					<td><input type="text" name="Buch" size="24"></td>
				</tr>
				<tr>
					<td>Drehbuch:</td>
					<td><input type="text" name="Drehbuch" size="24"></td>
				</tr>
				<tr>
					<td>Dauer:</td>
					<td><input type="text" name="Dauer" size="10">min</td>
				</tr>
				<tr>
					<td>Erscheinungsjahr:</td>
					<td><input type="text" name="Jahr" size="24"></td>
				</tr>
				<tr>
					<td>FSK:</td>
					<td><input type="text" name="FSK" size="24"></td>
				</tr>
				<tr>
					<td>Love-Gehalt:</td>
					<td><input type="text" name="Love" size="24">Stufe zwischen 0 und 5</td>
				</tr>
				<tr>
					<td>Filmstudio:</td>
					<td><input type="text" name="Studio" size="24"></td>
				</tr>
				<tr>
					<td>VHS/DVD?</td>
					<td><select name="DVDVHS" {$DVDVHSfeld}></select></td>
				</tr>
				<tr>
					<td></td>
					<td><input type="submit" value="Daten eintragen" 
name="submit"></td>
				</tr>
			</table>
		</form>
		<p></p>
	</body>

</html>

Habe beide Varianten aus letztem Posting ausprobiert, es hat leider nicht geklappt. Das Auswahlfeld war immer noch leer...

Viele Grüße
fruchtgummi

Grüße fruchtgummi
 
Zuletzt bearbeitet:
hi,

dann die Standalone Lösung... btw. den PHP Code hast du ja sicherlich auch in die seite gepackt, damit es am Ende so aussieht:
Code:
<?php 
include("zugriff.inc.php"); 
if (isset($_POST['submit'])) { 
    if (empty($_POST['Filmtitel'])) { 
        echo "<p>Bitte <b>Filmtitel</b> angeben!</p>"; 
    } else if (strlen($_POST['Filmtitel'])<2) { 
        echo "<p>Der Filmtitel muss mindestens <b>2</b> Zeichen lang sein!</p>"; 
    } else { 
        $sql = "INSERT INTO MeineFilme (Filmtitel, Regisseur, Schauspieler, Musik, 
Buch, Drehbuch, Dauer, Jahr, Land, Wahrheitsgehalt, FSK, Love, Studio, DVDVHS ) 
VALUES ('$_POST[Filmtitel]', '$_POST[Regisseur]', '$_POST[Schauspieler]', 
'$_POST[Musik]', '$_POST[Buch]', '$_POST[Drehbuch]', '$_POST[Dauer]', 
'$_POST[Jahr]', '$_POST[Land]', '$_POST[Wahrheitsgehalt]', '$_POST[FSK]', 
'$_POST[Love]', '$_POST[Studio]', '$_POST[DVDVHS]')"; 
        $result = mysql_query($sql); 
        if ($result) { 
            echo "<p>Dateneingabe erfolgreich!</p>"; 
        } else { 
            echo "<p>Dateneingabe <b>nicht</b> erfolgreich!</p>"; 
        } 
    } 
    echo "[ <a href='javascript:history.back()'>Zurück</a> ] - 
    [ <a href='eingabeform.php'>Neuen Datensatz eintragen</a> ]"; 
} else { 
    $sql2 = "SELECT * FROM vhsdvd"; 
    $result2 = mysql_query($sql2); 
    $DVDVHSfeld = ""; 
    while ($row = mysql_fetch_assoc($result2)) { 
        $DVDVHSfeld .= "<option value='$row[id]'>$row[DVDVHS]</option>\n"; 
    } 
} 
mysql_close($dp); 
?> 
<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive 5">
		<title>Willkommen bei Adobe GoLive 5</title>
	</head>

	<body bgcolor="#ffffff">
		<form name="FormName" action="eingabe.php" method="post">
			<table border="1" cellpadding="0" cellspacing="2">
				<tr>
					<td>Filmtitel:</td>
					<td><input type="text" name="Filmtitel" size="35"></td>
				</tr>
				<tr>
					<td>Regisseur:</td>
					<td><input type="text" name="Regisseur" size="35"></td>
				</tr>
				<tr>
					<td valign="top">Schauspieler:</td>
					<td><textarea name="Schauspieler" cols="40" rows="6"></textarea></td>
				</tr>
				<tr>
					<td>Filmmusik von:</td>
					<td><input type="text" name="Musik" size="24"></td>
				</tr>
				<tr>
					<td>Buch:</td>
					<td><input type="text" name="Buch" size="24"></td>
				</tr>
				<tr>
					<td>Drehbuch:</td>
					<td><input type="text" name="Drehbuch" size="24"></td>
				</tr>
				<tr>
					<td>Dauer:</td>
					<td><input type="text" name="Dauer" size="10">min</td>
				</tr>
				<tr>
					<td>Erscheinungsjahr:</td>
					<td><input type="text" name="Jahr" size="24"></td>
				</tr>
				<tr>
					<td>FSK:</td>
					<td><input type="text" name="FSK" size="24"></td>
				</tr>
				<tr>
					<td>Love-Gehalt:</td>
					<td><input type="text" name="Love" size="24">Stufe zwischen 0 und 5</td>
				</tr>
				<tr>
					<td>Filmstudio:</td>
					<td><input type="text" name="Studio" size="24"></td>
				</tr>
				<tr>
					<td>VHS/DVD?</td>
					<td><select name="DVDVHS"><? echo $DVDVHSfeld; ?></select></td>
				</tr>
				<tr>
					<td></td>
					<td><input type="submit" value="Daten eintragen" 
name="submit"></td>
				</tr>
			</table>
		</form>
		<p></p>
	</body>

</html>
 
Hallo,

sorry versteh ich nicht - ich habe doch auf eingabeform.php die action="eingabe.php", die auf eingabe.php führt. Da kann ich doch nicht alles auf eine Seite schreiben...

Und wie gesagt, die standalone Lösung mit
<select name="DVDVHS"><? echo $DVDVHSfeld; ?></select>
funktioniert ja auch nicht.

Grüße fruchtgummi
 
Hi,

hast du schon das getestet, was ich dir geschrieben habe?

Der PHP Code muss mit in die Seite, da sonst das Auswahlfeld nicht weiß, woher es seine Daten bekommt (aus der Datenbank bzw. aus der Variable $DVDVHSfeld) - darüber hinaus ist es möglich alles auf eine Seite zu knallen.

Wie gesagt probiere den Code aus meinem vorherigen Post einfach mal aus..

--
Wenn es dir zuviel Code auf einer Seite ist, musst du trotzdem in der eingabeform.php den folgenden Code an den Anfang der Seite einbinden
Code:
<?php 
include("zugriff.inc.php"); 

$sql2 = "SELECT * FROM vhsdvd"; 
    $result2 = mysql_query($sql2); 
    $DVDVHSfeld = ""; 
    while ($row = mysql_fetch_assoc($result2)) { 
        $DVDVHSfeld .= "<option value='$row[id]'>$row[DVDVHS]</option>\n"; 
    } 
?>
Andernfalls ist deine Variable $DVDVHSfeld leer und es passiert nichts... bzw. dann klappts auch mit der Standalone-Lösung ;)
 
Zuletzt bearbeitet von einem Moderator:
Hallo und vielen Dank, es klappt!

Hier nochmal der Code für alle -

eingabeform.php:

PHP:
<?php 
include("zugriff.inc.php"); 

$sql2 = "SELECT * FROM vhsdvd"; 
    $result2 = mysql_query($sql2); 
    $DVDVHSfeld = ""; 
    while ($row = mysql_fetch_assoc($result2)) { 
        $DVDVHSfeld .= "<option value='$row[id]'>$row[DVDVHS]</option>\n"; 
    } 
$sql3 = "SELECT * FROM wahrheit"; 
    $result3 = mysql_query($sql3); 
    $wahrheitsfeld = ""; 
    while ($row = mysql_fetch_assoc($result3)) { 
        $wahrheitsfeld .= "<option value='$row[id]'>$row[Wahrheitsgehalt]</option>\n"; 
    } 
$sql4 = "SELECT * FROM genre"; 
    $result4 = mysql_query($sql4); 
    $genrefeld = ""; 
    while ($row = mysql_fetch_assoc($result4)) { 
        $genrefeld .= "<option value='$row[id]'>$row[Genre]</option>\n"; 
    } 
?> 
<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive 5">
		<title>Willkommen bei Adobe GoLive 5</title>
	</head>

	<body bgcolor="#ffffff">
		<form name="FormName" action="eingabe.php" method="post">
			<table border="1" cellpadding="0" cellspacing="2">
				<tr>
					<td>Filmtitel:</td>
					<td><input type="text" name="Filmtitel" size="35"></td>
				</tr>
				<tr>
					<td>Regisseur:</td>
					<td><input type="text" name="Regisseur" size="35"></td>
				</tr>
				<tr>
					<td valign="top">Schauspieler:</td>
					<td><textarea name="Schauspieler" cols="40" rows="6"></textarea></td>
				</tr>
				<tr>
					<td>Filmmusik von:</td>
					<td><input type="text" name="Musik" size="24"></td>
				</tr>
				<tr>
					<td>Buch:</td>
					<td><input type="text" name="Buch" size="24"></td>
				</tr>
				<tr>
					<td>Drehbuch:</td>
					<td><input type="text" name="Drehbuch" size="24"></td>
				</tr>
				<tr>
					<td>Dauer:</td>
					<td><input type="text" name="Dauer" size="10">min</td>
				</tr>
				<tr>
					<td>Jahr:</td>
					<td><input type="text" name="Jahr" size="10"></td>
				</tr>
				<tr>
					<td>Land</td>
					<td><input type="text" name="Land" size="24"></td>
				</tr>
				<tr>
					<td>Wahrheitsgehalt:</td>
					<td><select name="Wahrheitsgehalt">
							<? echo $wahrheitsfeld; ?>
						</select></td>
				</tr>
				<tr>
					<td>FSK ab:</td>
					<td><input type="text" name="FSK" size="24">Jahre</td>
				</tr>
				<tr>
					<td>Love-Gehalt:</td>
					<td><input type="text" name="Love" size="24">Stufe zwischen 0 und 5</td>
				</tr>
				<tr>
					<td>Filmstudio:</td>
					<td><input type="text" name="Studio" size="24"></td>
				</tr>
				<tr>
					<td>Genre:</td>
					<td><select name="Genre">
							<? echo $genrefeld; ?>
						</select></td>
				</tr>
				<tr>
					<td>VHS/DVD?</td>
					<td><select name="DVDVHS"><? echo $DVDVHSfeld; ?></select></td>
				</tr>
				<tr>
					<td></td>
					<td><input type="submit" value="Daten eintragen" 
name="submit"></td>
				</tr>
			</table>
		</form>
		<p></p>
	</body>

</html>


Und hier eingabe.php

PHP:
<?php 
include("zugriff.inc.php"); 
if (isset($_POST['submit'])) { 
    if (empty($_POST['Filmtitel'])) { 
        echo "<p>Bitte <b>Filmtitel</b> angeben!</p>"; 
    } else if (strlen($_POST['Filmtitel'])<2) { 
        echo "<p>Der Filmtitel muss mindestens <b>2</b> Zeichen lang sein!</p>"; 
    } else { 
        $sql = "INSERT INTO MeineFilme (Filmtitel, Regisseur, Schauspieler, Musik, 
Buch, Drehbuch, Dauer, Jahr, Land, Wahrheitsgehalt, FSK, Love, Studio, Genre, DVDVHS ) 
VALUES ('$_POST[Filmtitel]', '$_POST[Regisseur]', '$_POST[Schauspieler]', 
'$_POST[Musik]', '$_POST[Buch]', '$_POST[Drehbuch]', '$_POST[Dauer]', 
'$_POST[Jahr]', '$_POST[Land]', '$_POST[Wahrheitsgehalt]', '$_POST[FSK]', 
'$_POST[Love]', '$_POST[Studio]', '$_POST[Genre]', '$_POST[DVDVHS]')"; 
        $result = mysql_query($sql); 
        if ($result) { 
            echo "<p>Dateneingabe erfolgreich!</p>"; 
        } else { 
            echo "<p>Dateneingabe <b>nicht</b> erfolgreich!</p>"; 
        } 
    } 
    echo "[ <a href='javascript:history.back()'>Zurück</a> ] - 
    [ <a href='eingabeform.php'>Neuen Datensatz eintragen</a> ]"; 
} 
mysql_close($dp); 
?>

Viele Grüße
fruchtgummi
 
Zurück