ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
248
248
EMPFEHLEN
-
25.08.07 01:50 #1
- Registriert seit
- Aug 2007
- Beiträge
- 2
Hallo,
ich bin ziemlich neu in php und mysql und habe ein Problem mit einem Formular, über welches Subkategorien erstellt werden können, die gleichzeitig bestimmten Kategorien zugeordnet werden: Für Kategorien und Subkategorien existieren jeweils mysql-Tabellen mit folgender Struktur:
Tabelle kategorien
cat_id
cat_name
....
Tabelle subkategorien
sub_id
sub_name
cat_id
....
Das Formular soll nur aus den beiden Feldern Subkategorie Name (text) und Kategorie (drop-down bzw. select) bestehen. Das Drop-down-Feld soll die Namen der Kategorien enthalten, es sollen aber letztendlich die IDs dieser Kategorien in der Subkategorie-Tabelle in der Spalte cat_id gespeichert werden (eine andere Variante wäre, die Kategorienamen direkt zu speichern, z.B. in einer Spalte cat_name), um die Subkategorien eindeutig zuzuordnen.
Ich hoffe, mein Problem ist einigermaßen verständlich.
Wie bekommt man das an besten hin?
Grüße und vielen Dank im Voraus!
-
Zunächst mal einen kleine Tip verwende unterschiedlich Spalten namen in den Tabellen.Dann wirste Dir später leichter tun und es kommt weniger zu Verwechslungen.Also wenn möglich in der ganze Datenbank nur einmal einen bestimmten spalten namen verwenden.
So nun zu deinen Tabellen das ist eine Klassische 1/n Beziehung wenn man davon ausgeht das es nur mehrer subkategorien geben soll.Daher brauchst du mal einen Fremdkey in deiner 2 Tabelle.
Tabelle kategorien
cat_id
cat_name
Tabelle subkategorien
sub_id
sub_name
f_cat_id
So nun brauchst die Tabellen mit einen ganz gewöhnliche insert into befehl füllen.
Zum füllen verwendet du ein Formular wenn ich das Richtig verstanden hab.Dort fragst du alle benötigen Werte hab und schreibst dann den Datensatz in die Tabelle rein.
Bsp.
Mfg SplaschPHP-Code:INSERT INTO subkategorien ('sub_name',f_cat_id') values ('link','1');
-
25.08.07 19:47 #3
- Registriert seit
- Aug 2007
- Beiträge
- 2
Hallo Splash, vielen Dank für Deine Antwort.
Ich habe schon einiges ausprobiert und bin jetzt soweit, dass ich das Formular mit einem Eingabefeld für den Subkategorienamen und einer Drop-Down-Liste zur Auswahl der Kategorien (die schon in der Tabelle vorhanden sind) hingekriegt habe. Hier der Code:
Wie gesagt, das Formular funktioniert, das Problem ist nur, dass die Subkategorientabelle nicht upgedatet wird (auch nicht mit INSERT INTO statt UPDATE). Es tut sich leider gar nichts.PHP-Code:<?php function editcategories( &$row, $option) {
global $database;
?>
<form action="index2.php" method="POST" name="adminForm">
<table>
<tr>
<td width="200">Subcategory</td>
<td><input class="inputbox" type="text" name="name" size="30" value="<?php echo $row->name;?>" /></td>
</tr>
<tr>
<td>
<?php
//drop-down box, soll kategoriennamen als select ausgeben, es soll dann aber die cat_id an andere Tabelle übergeben werden
$query = "SELECT cat_id, name FROM kategorien";
$result = mysql_query($query);
echo "<select name='cat_id'>"; //wenn ich hier name statt cat_id nehme überschreibt es mir die Subkategorienamen
while ($data = mysql_fetch_array($result))
{
echo "<option value='" . $data["cat_id"] . "'>";
echo $data["name"] . "</option>";
}
echo "</select>";
//übergabe an kategorien-Tabelle - hier hakt es
$eintrag = "UPDATE subkategorien (cat_id) SET cat_id'";
$result = mysql_query($eintrag);
?>
</td></tr>
</table>
<input type="hidden" name="sub_id" value="<?php echo $row->sub_id; ?>" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="option" value="<?php echo $option; ?>" />
</form>
<?php
}
?>
Das Problem mit den gleichen Spaltennamen kann ich leider nicht beheben, da sich der Code innerhalb einer Joomla-Komponente befindet und die Tabellen noch in anderem Zusammenhang verwendet werden.
Ach ja, noch kurz eine Schludrigkeit von mir in meinem ersten Post: Die Namensspalten in beiden Tabellen heißen beide name, nicht cat_name und sub_name. Aber wie gesagt, das kann ich leider nicht ändern.
Und noch eine ganz blöde Frage: Wie erstelle ich einen Fremdschlüssel, hab in phpmyadmin keine Option dazu gefunden.
Ich hoffe nochmals auf Hilfe,
Grüße
blancanieve
Ähnliche Themen
-
Ausgabe von Formulardaten in einer Tabelle
Von filigrani im Forum PHPAntworten: 21Letzter Beitrag: 31.03.08, 12:12 -
MYSQL Zeile einer Tabelle mittels VB.net in eine andere Tabelle kopieren
Von bierber im Forum .NET DatenverwaltungAntworten: 1Letzter Beitrag: 05.05.07, 19:44 -
Bestimmte Einträge aus einer Tabelle in eine andere Tabelle kopieren
Von medico im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 29.03.06, 18:42 -
einen Wert in eine andere Tabelle übergeben
Von mvoigt im Forum PHPAntworten: 7Letzter Beitrag: 30.05.05, 08:55 -
Von einer tabellen spalte in eine andere übergeben
Von hubidgsahj im Forum PHPAntworten: 5Letzter Beitrag: 18.10.04, 20:59





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren