# "insert into" mit phpMyAdmin; blutiger Anfänger



## maxell (6. September 2004)

Hallo,

ich bin blutiger Anfänger in Sachen SQL & Co. Mit PHP kenne ich mich inzwischen leidlich aus und stehe nun vor einem Problem:

Ich bastel mir gerade mit osCommerce einen Shop zusammen, um einfach nach und nach die Zusammenhänge und Bedingungen, Befehle, etc. von PHP kennen zu lernen.

Jetzt habe ich eine Contrib installieren wollen, was auch soweit ganz gut geklappt hat. Dazu musste ich einige neue Tables in meine SQL-DB eintragen, was auch kein Problem war. Aber jetzt: Unter einigen Table-Anweisungen stehen "INSERT INTO" - Befehle.

Zitat:
CREATE TABLE `ccc_cat` (
  `cat_id` int(11) NOT NULL auto_increment,
  `status` tinyint(2) NOT NULL default '1',
  `cat_req` tinyint(2) NOT NULL default '0',
  `sort_order` int(11) NOT NULL default '0',
  `sys_id` int(11) NOT NULL default '0',
  `fsb_id` int(11) NOT NULL default '0',
  KEY `cat_id` (`cat_id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;

#
# Dumping data for table `ccc_cat`
#

INSERT INTO `ccc_cat` VALUES (4, 1, 0, 1, 5, 5);
INSERT INTO `ccc_cat` VALUES (4, 1, 0, 1, 5, 6);


Wie und wo füge ich diese Befehle mit phpMyAdmin ein? Wäre für eine möglichst genaue Anleitung seeeeehr dankbar. Stehe voll auf dem Schlauch...

Vielen Dank im voraus!


----------



## Sven Mintel (6. September 2004)

>Links im Menu die Datenbank auswählen
>Rechts oben im Menu auf "SQL" gehen
>Anweisungen in das Textfeld kopieren
>OK


----------



## maxell (6. September 2004)

Vielen Dank für die schnelle Antwort!

War mir nicht sicher, ob in dem SQL-Feld oder bei "Einfügen"  
Wie gesagt, da bin ich ...

Nochmal vielen Dank!


----------



## maxell (6. September 2004)

Ups,

hab die beiden "INSERT_INTO..." unter "SELECT * FROM `ccc_cat` WHERE 1" eingefügt und erhalte folgende Fehlermeldung:


Fehler

SQL-Befehl : 

SELECT *
FROM `ccc_cat`
WHERE 1
INSERT INTO `ccc_cat`
VALUES ( 4, 1, 0, 1, 5, 5 )

MySQL meldet:
#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `ccc_cat` VALUES (4, 1, 0, 1, 5, 5)' at line 2


----------



## maxell (6. September 2004)

Okay, gut, mein Fehler!

Habe das Semikolon hinter  ...WHERE 1 vergessen :-( 

Die "INSERT INTO" haben jetzt bei allen Tables geklappt, nur beim oben zitierten kommt folgende Fehlermeldung:

Fehler

SQL-Befehl : 

INSERT INTO `ccc_cat`
VALUES ( 4, 1, 0, 1, 5, 5 )

MySQL meldet:
#1062 - Duplicate entry '4' for key 1 


Wie kann ich das beheben?


----------



## Sven Mintel (6. September 2004)

Indem du auf die Angabe eines Wertes für 'cat_id' verzichtest.
...cat_id darf nicht mehrmals den selben Wert haben(4), da es key und AUTO_INCEREMENT ist....da es AUTO_INCREMENT ist, brauchst du dich um dessen Wert nicht kümmern...der wird automatisch beim Erzeugen neuer Datensätze inkrementiert.

Wenn du das machst, musst du das INSERT umschreiben...indem du jeweils den Feldnamen angibst:

```
INSERT INTO `ccc_cat`(`status` ,`cat_req` ,`sort_order` ,`sys_id` ,`fsb_id` )
VALUES ( 1, 0, 1, 5, 5 );
```


----------



## maxell (7. September 2004)

Hi,

okay, vielen Dank!   Es funktioniert.

Werde mich also in der nächsten Zeit mal mehr damit auseinandersetzen, wenn man's so erklärt bekommt ist es ja eigentlich logisch... Mach mich mal auf die Suche nach einer guten Newbie-Dokumentation  

Danke...


----------



## Sven Mintel (7. September 2004)

Wenn du dich näher damit beschäftigen willst, verzichte auf PHPMyAdmin und schau dir PHP näher an...PHPMyAdmin ist auch nur eine Sammlung von PHP-Skripten...


----------



## maxell (7. September 2004)

Ja, damit meinte ich auch nicht phpMyAdmin, sondern PHP und SQL. Das blöde ist nur, dass diese "Studien" ständig durch den Gang zur Arbeit unterbrochen werden


----------



## Sven Mintel (7. September 2004)

Dann lasse die Arbeit sein...irgendwann muss man halt Prioritäten setzen :suspekt:


----------



## maxell (7. September 2004)

Gute Idee...


----------

