Hi ich habe mal so eine frage
und zwar will ich ein Insert für Mysql erstellen lassen auf der seite zuvor gibt es verschiedene Inputfields aber die anzahl hängt von mehre variablen ab aber das denk ich brauch hier nicht weiter zu erwähnen, so bloß ads Problem ist wenn ich sie übergebe müssen alle in eine Tabelle bloß wie bekomme ich die ganzen felder nun anch einander und dann auch noch 2 mal und das ganze mit den kommatas
weil es ja heißt "Insert into tbl (**) Values (*) ...."
oder fall ich es falsch audrücke wir haben einfach ein dynamisches array was imme runterschiedlich viele einträge hat
MFG
Seite 1 von 1
[php]insert Erstellen Lassen
Anzeige
#2 _rjchio_
geschrieben 27. August 2006 - 07:44
Ich denke da gibt es mehrere Möglichkeiten...
- Du erstellst folgende Tabelle: id, eintrags_id, inhalt. Falls du dann ein Array mit 3 Einträgen hast, speicherst du es so:
NULL, '1', 'Eintrag 1'
NULL, '1', 'Eintrag 2'
NULL, '1', 'Eintrag 3'
Zum auslesen genügt dann ein WHERE eintrags_id = '1'. Natürlich musst du die eintrags_id beim nächsten Array, das eingetragen werden soll um 1 erhöhen.
- Du erstellst folgende Tabelle: id, inhalt. Bevor du ein Array in die Datenbank speicherst, wandelst du das Array mit serialize() in ein String um. Somit ist es kein Problem mehr, beliebig viele Einträge von einem Array in einem Feld der Datenbank zu speichern.
Wenn du das Array wieder auslesen willst, brauchst du bloss mit unserialize() den String wieder zu einem Array umzuwandeln.
MfG rjchio
- Du erstellst folgende Tabelle: id, eintrags_id, inhalt. Falls du dann ein Array mit 3 Einträgen hast, speicherst du es so:
NULL, '1', 'Eintrag 1'
NULL, '1', 'Eintrag 2'
NULL, '1', 'Eintrag 3'
Zum auslesen genügt dann ein WHERE eintrags_id = '1'. Natürlich musst du die eintrags_id beim nächsten Array, das eingetragen werden soll um 1 erhöhen.
- Du erstellst folgende Tabelle: id, inhalt. Bevor du ein Array in die Datenbank speicherst, wandelst du das Array mit serialize() in ein String um. Somit ist es kein Problem mehr, beliebig viele Einträge von einem Array in einem Feld der Datenbank zu speichern.
Wenn du das Array wieder auslesen willst, brauchst du bloss mit unserialize() den String wieder zu einem Array umzuwandeln.
MfG rjchio
#3
geschrieben 27. August 2006 - 08:52
könntest du mir vielleicht ein kleines Code Beispiel schreiben weil ich nicht so ganz verstehe was du meinst
also sagen wir ich habe ein Array
so und nun soll er so ein Insert daraus machen
So in etwa wollte ich es haben bloß ich habe leider keine Ahnung wie ich das hinbekomme
MFG
also sagen wir ich habe ein Array
$array["spalte1"]=45; $array["spalte6"]=12; $array["spalte4"]=9456; $array["spalte3"]=87; $array["spalte9"]=78;
so und nun soll er so ein Insert daraus machen
INSERT INTO Tabelle (id, spalte1, spalte6, spalte4, spalte3, spalte9) VALUES (NULL ,45, 12, 9456, 87, 78)
So in etwa wollte ich es haben bloß ich habe leider keine Ahnung wie ich das hinbekomme
MFG
Dieser Beitrag wurde von pchero bearbeitet: 27. August 2006 - 08:59
#4 _rjchio_
geschrieben 27. August 2006 - 09:38
CREATE TABLE `beispiel` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `eintrags_id` INT NOT NULL , `inhalt` LONGTEXT NOT NULL ) ENGINE = MYISAM;
<?php $array["spalte1"]=45; $array["spalte6"]=12; $array["spalte4"]=9456; $array["spalte3"]=87; $array["spalte9"]=78; // Array speichern $result = mysql_query("SELECT max(`eintrags_id`) + 1 FROM `beispiel`"); $row = mysql_fetch_row($result); $eintrags_id = $row[0]; mysql_free_result($result); foreach ($array as $key => $inhalt) { mysql_query("INSERT INTO `beispiel` (`id`, `eintrags_id`, `inhalt`) VALUES (NULL, '".$eintrags_id."', '".$inhalt."')"); } // Array lesen $eintrags_id = 1; mysql_query("SELECT * FROM `beispiel` WHERE `eintrags_id` = '".$eintrags_id."'"); $row = mysql_fetch_row($result); while ($row = mysql_fetch_row($result)) { $array[] = $row[2]; } mysql_free_result($result); ?>
Falls du noch mehr Erklärungen brauchst, sollten wir uns ev. schnell im Chat treffen (-> PN)
MfG rjchio
Dieser Beitrag wurde von rjchio bearbeitet: 27. August 2006 - 09:47
Thema verteilen:
Seite 1 von 1