Morgen Leutz...
Ich hoffe dass ich das ganze jetzt in das richtige Forum reingesetzt habe, weil es sowohl MySQL aber auch PHP beinhaltet, ich aber nicht genau weiss ob ich bei PHP oder MySQL was ändern muss um das Problem zu lösen...
Ich habe ein Eingabe-Formular gemacht, in dem 3 Felder aus anderen Tabellen ausgelesen werden sollen, die dann zusammen in einer andere Tabelle geschrieben werden sollen (ID), welche sich die Infos dann später wieder aus den anderen Tabellen holen (zum besseren Verständnis habe ich mal das ER-Diagramm der DB raufgeladen
ER-Diagram: http://www.dieternuhrfanclub.de/proj...bank-Plan5.gif
Das Problem ist folgendes:
Das ist ein Eingabeformular für Kurse. Um Fehler zu vermeiden und damit Daten nicht ständig neu eingegeben werden müssen kann der User verschieden Teile vorher aus einem DropDown-Menü auswählen, welche aus den jeweiligen Tabellen ausgelesen werden und von denen später die ID in die Tabelle KURSE geschrieben wird. Das wären hier Kurs-Kategorie (kurs_kat), Kursbeschreibung (kursbeschreibung) und der Dozent (dozenten).
Das Problem ist jetzt, das ich für jedes DropDown-Menu eine eigene Abfrage gestartet. Habe das auch mit einer zentralen Abfrage versucht, aber da bekam ich immer doppelte Ergebnisse die ich auch mit DISTINCT nicht weg bekam.
Das Ganze funzt jetzt so wie ich es habe. Jetzt wollte ich gerne wissen ob jemand eine "elegantere" Lösung kennt, damit das ganze etwas übersichtlicher und kleiner wird.
Ich habe euch unten einmal den Code eingefügt, ihr könnt euch das ganze aber auch einmal unter
http://www.dieternuhrfanclub.de/proj...abe_kurs_b.php
anschauen.
Wäre für jede Hilfe dankbar...
Lapje
[/php]
Ich hoffe dass ich das ganze jetzt in das richtige Forum reingesetzt habe, weil es sowohl MySQL aber auch PHP beinhaltet, ich aber nicht genau weiss ob ich bei PHP oder MySQL was ändern muss um das Problem zu lösen...
Ich habe ein Eingabe-Formular gemacht, in dem 3 Felder aus anderen Tabellen ausgelesen werden sollen, die dann zusammen in einer andere Tabelle geschrieben werden sollen (ID), welche sich die Infos dann später wieder aus den anderen Tabellen holen (zum besseren Verständnis habe ich mal das ER-Diagramm der DB raufgeladen
ER-Diagram: http://www.dieternuhrfanclub.de/proj...bank-Plan5.gif
Das Problem ist folgendes:
Das ist ein Eingabeformular für Kurse. Um Fehler zu vermeiden und damit Daten nicht ständig neu eingegeben werden müssen kann der User verschieden Teile vorher aus einem DropDown-Menü auswählen, welche aus den jeweiligen Tabellen ausgelesen werden und von denen später die ID in die Tabelle KURSE geschrieben wird. Das wären hier Kurs-Kategorie (kurs_kat), Kursbeschreibung (kursbeschreibung) und der Dozent (dozenten).
Das Problem ist jetzt, das ich für jedes DropDown-Menu eine eigene Abfrage gestartet. Habe das auch mit einer zentralen Abfrage versucht, aber da bekam ich immer doppelte Ergebnisse die ich auch mit DISTINCT nicht weg bekam.
Das Ganze funzt jetzt so wie ich es habe. Jetzt wollte ich gerne wissen ob jemand eine "elegantere" Lösung kennt, damit das ganze etwas übersichtlicher und kleiner wird.
Ich habe euch unten einmal den Code eingefügt, ihr könnt euch das ganze aber auch einmal unter
http://www.dieternuhrfanclub.de/proj...abe_kurs_b.php
anschauen.
Wäre für jede Hilfe dankbar...
Lapje
PHP-Code:
<body>
<?php
//$kurs_beschreibung_id=1;
//$kurs_dozent_id=1;
if (isset($gesendet))
{
mysql_connect();
mysql_select_db("schulungen");
//if ($kurs_name == "")
// echo "Es ist ein Fehler aufgetreten
";
//else
//{
$mysql_eingabe = "INSERT kurse";
$mysql_eingabe .= "(kurs_name, kurs_kat_id, kurs_anfang, kurs_ende, kurs_anmeldeschluss, kurs_zeiten, kurs_gebuehr, kurs_bemerkung, kurs_beschreibung_id, kurs_dozent_id)";
$mysql_eingabe .= "VALUES ('$kurs_name', '$kurs_kat_id_send', '$kurs_anfang', '$kurs_ende', '$kurs_anmeldeschluss', '$kurs_zeiten', '$kurs_gebuehr', '$kurs_bemerkung', '$kurs_beschreibung_id_send', '$kurs_dozent_id_send')";
mysql_query($mysql_eingabe);
$num = mysql_affected_rows();
if ($num>0)
{
echo "1 Datensatz wurde hinzugefügt
";
}
else
echo "Ein Fehler ist aufgetreten.
";
}
//}
?>
Bitte geben Sie einen vollständigen Datensatz ein: </p>
</p>
<form action="eingabe_kurs.php" method="post">
Kursname: <input name="kurs_name" size="50">
<?php
mysql_connect();
mysql_select_db("schulungen");
$mysql_abfrage = "SELECT DISTINCT kurs_kat, kurs_kat_id FROM kurs_kat ORDER BY kurs_kat";
$mysql_ergebnis=mysql_query($mysql_abfrage);
$num = mysql_num_rows($mysql_ergebnis);
mysql_close();
?>
Kurs-Kategorie: <select name="kurs_kat_id_send">
<?php
while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
{
echo "<option value='" . $datensatz["kurs_kat_id"] . "'>" . $datensatz["kurs_kat"] . "</option>";
}
?>
</select>
Kurs-Anfang: <input name="kurs_anfang" size="50">
Kurs-Ende: <input name="kurs_ende" size="50">
Kurs-Anmeldeschluss: <input name="kurs_anmeldeschluss" size="50">
Kurs-Zeiten: <input name="kurs_zeiten" size="50">
Kurs-Gebühr: <input name="kurs_gebuehr" size="50">
Kurs-Bemerkung: <input name="kurs_bemerkung" size="50">
<?php
mysql_connect();
mysql_select_db("schulungen");
$mysql_abfrage = "SELECT DISTINCT kurs_name_kurz, kurs_beschreibung_id FROM kursbeschreibung ORDER BY kurs_name_kurz";
$mysql_ergebnis=mysql_query($mysql_abfrage);
$num = mysql_num_rows($mysql_ergebnis);
mysql_close();
?>
Kurs-Beschreibung: <select name="kurs_beschreibung_id_send">
<?php
while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
{
echo "<option value='" . $datensatz["kurs_beschreibung_id"] . "'>" . $datensatz["kurs_name_kurz"] . "</option>";
}
?>
</select>
<?php
mysql_connect();
mysql_select_db("schulungen");
$mysql_abfrage = "SELECT DISTINCT dozent_id, dozent_name, dozent_vorname FROM dozenten ORDER BY dozent_name";
$mysql_ergebnis=mysql_query($mysql_abfrage);
$num = mysql_num_rows($mysql_ergebnis);
mysql_close();
?>
Kurs-Kategorie: <select name="kurs_dozent_id_send">
<?php
while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
{
echo "<option value='" . $datensatz["dozent_id"] . "'>" . $datensatz["dozent_vorname"] . " " . $datensatz["dozent_name"] . "</option>";
}
?>
</select>
<input type="submit" name="gesendet">
<input type="reset">
</form>
</body>
Kommentar