MySQL-Onlineshop Administration - Neuen Artikel erstellen - Problem

the snake II

Erfahrenes Mitglied
Hallo zusammen,

ich arbeite gerade an einem Script, mit dem man als Administrator einen neuen Artikel in einen Onlineshop, der mit MySQL arbeitet, erstellen kann.

Es ist wichtig, zu wissen, dass ich die Datenbank so Strukturiere:

Die Datenbank heißt "webshop".
In der Datenbank wird für jede Artikelgrppe (z.B. "Heimwerkerartikel" :-) ) eine Tabelle erstellt.
In den jeweiligen Tabellen ist jede Zeile ein Artikel.
Spalten:
"ID" - Artikelnummer (fortlaufende Zahl)
"name" - ist wohl klar
"bild" - URL zum Bild des Artikels
"text" - Beschreibung
"preis" - ist auch klar

Man kann durch Radiobuttons entscheiden, ob man den neuen Artikel in eine bereits bestehende Gruppe oder in eine neue einfügen möchte.

Entscheidet man sich für eine neue Gruppe tritt das Problem auf.
Hier die entsprechende stelle im Code:
PHP:
if($_POST["newornot"]=="new"){ //wenn eine neue Gruppe erstellt werden soll
$create_query = '
CREATE TABLE `'.$_POST["newgroupname"].'` ( 
`ID` INT NOT NULL ,
`name` VARCHAR( 50 ) NOT NULL ,
`bild` VARCHAR( 50 ) NOT NULL ,
`text` TEXT NOT NULL ,
`preis` INT NOT NULL ,
INDEX ( `ID` )
);';
mysql_query($create_query);

$handle = file("./current_articles.txt"); //Die Anzahl der Aktuellen Artikel für die fortlaufende ID sthet in dieser Datei
foreach($handle as $art_count){
	$insert_query = "
	INSERT INTO `".$_POST["newgroupname"]."` ( `ID` , `name` , `bild` , `text` , `preis` )
	VALUES (
	'".++$art_count."', '".$name."', '".$bild."', '".$text."', '".$preis."' 
	);";//§name entspricht §_POST["name"] usw.
	}
	mysql_query($insert_query);
}
Es wird also erst eine neue Tabelle mit dem Namen, den man in "newgroupname" (textfeld) eingegeben hat, erstellt und dann werden die Werte eingetragen, die man in einem Formular eingegeben hat.

Das Problem ist nun das, das zwar eine neue Tabelle erstellt wird, aber die Werte nicht eingefügt werden.

Dazu muss ich allerdings noch sagen, dass mein phpMyAdmin (v 2.6.1 -pl2) auf der Startseite folgende Warnung anzeigt: "Die PHP-Erweiterung "mbstring" wurde nicht gefunden, trotzdem jedoch scheinen Sie einen Mehrbyte-Zeichensatz zu verwenden. Ohne besagte Erweiterung ist phpMyAdmin nicht in der Lage Zeichenketten zu trennen, was zu unerwarteten Ergebnissen führen kann."

Ich weiß nicht ob das ausschlaggebend für mein Problem ist. (Wäre jedoch nett, wenn ihr eine Lösung für diese Warnung hättet, auch wenn das nichts mit dem oben beschriebenen zu tun hat)

Habt ihr vielleicht eine/zwei Lösungen für mich?
 
Für jede Artikelgruppe eine eigene Tabelle anzulegen ist nicht im Sinne einer relationalen Datenbank. Lege die Artikelgruppen in einer Tabelle ab und referenziere in einer Artikeltabelle auf die jeweilige Gruppe.

Code:
/-----------------\
|  Artikelgruppe  |
|-----------------|
| * ATG_ID        |=---\
|   ATG_NAME      |    |
\-----------------/    |
                       |
                       |
/-----------------\    |
|    Artikel      |    |
|-----------------|    |
| * ART_ID        |    |
|   ATG_ID        |=---/
|   ART_NAME      |
|   ART_BILD      |
|   ART_TEXT      |
\-----------------/
Sven
 
Zuletzt bearbeitet:
Dankeschön für die schnelle Antwort.
So hatte ich das auch zu Anfang, jedoch bekam ich das Problem beim Auslesen, um es im Inhaltsverzeichnis hierachisch aufzulisten.
Kennt jemand vielleicht ein solches Script?
Wenn nicht, werde ich das Inhaltsverzeichnis "statisch" anlegen. Also beim Klick auf eine Kategorie eine Extra Seite für die Artikel anzeigen lassen, und nicht "aufklappen" lassen.
 
Zurück