WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- insert array into mysql table

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » insert array into mysql table - 21 Nov 2024 Antworten
insert array into mysql table
Tommmy
Pixelschubser
Threadstarter




Beiträge: 16

Hallo!

Ich hab mal ne Frage, ich will den Inhalt von einem 2dimensionalen Array (action[][]) in eine Tabelle packen:

1:
mysql_query("INSERT INTO action (Battle_id, Action_1, Action_2, Action_3, Action_4, Action_5) VALUES ('21', '$action[1][0]', '$action[1][1]', '$action[1][2]', '$action[1][3]', '$action[1][4]')")


wenn ich das so mache, und dann später die Tabelle folgendermaßen auslesen:
1: 
2: 
3: 
4: 
5: 
6:
$result = mysql_query("SELECT * FROM action WHERE Battle_id = '21'");
$row = mysql_fetch_row($result);
if ($row)
{
print_r($row);
}


dann wird son mist ausgegeben:

Array ( [0] => Array[ [1] => Array[ [2] => Array[ [3] => Array[ [4] => Array[ ) )

also der Inhalt von z.B. Action_1 ist dann: "Array["

warum ist das so?

Ich kann das so umgehen:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
$u1 = $action[1][0];
$u2 = $action[1][1];
$u3 = $action[1][2];
$u4 = $action[1][3];
$u5 = $action[1][4];

...

mysql_query("INSERT INTO action (Battle_id, Action_1, Action_2, Action_3, Action_4, Action_5) VALUES ('21', '$u1', '$u2', '$u3', '$u4', '$u5')")


Wenn ich das so ^^ mache, dann ist der Inhalt von $row später beim Auslesen korrekt ... aber im prinzip ist das doch ncihts anderes als die erste Version ...

kann mir jemand helfen, das wäre übelst cool!

Danke!

  Profil   E-Mail   Editieren   Zitieren
Ehemaliges Mitglied (#378)
Quasselstrippe




Beiträge: 282

Hallo Tommmy,

für das Speichern von arrays wäre vielleicht serialize eine bessere Idee...
php:serialize

Viele Grüße
Mondschatten

  Profil   Editieren   Zitieren
Tommmy
Pixelschubser
Threadstarter




Beiträge: 16

Danke Mondschatten!

Also serialize kannte ich bis jetzt noch nicht, das klingt wirklich ziemlich gut!

Aber ich hab da ein Problem:
Welche Größe soll ich denn da für die myql-tabellen-Spalten einstellen:

$sql = "CREATE TABLE action
(
Battle_id int,
Action_1 varchar(4),
Action_2 varchar(4),
Action_3 varchar(4),
Action_4 varchar(4),
Action_5 varchar(4)
)";

weil ich weiß ja nun garnicht, wie groß serialize mein Array dann schlussendlich macht ...

Diese Nachricht wurde geändert von: Tommmy
  Profil   E-Mail   Editieren   Zitieren
Ehemaliges Mitglied (#378)
Quasselstrippe




Beiträge: 282

Hallo Tommmy,

der Datentyp ist ein String.

Wie viel Platz Dein Array einnimmt, hängt von der Größe des Arrays selbst ab. Ob Du als Datentyp eine bestimmte Stringlänge oder Text nimmst, hängt davon ab, inwieweit Du abschätzt, wie groß Dein Array werden kann. Probier's doch einfach mal aus.

Grüsse
Mondschatten

  Profil   Editieren   Zitieren
Tommmy
Pixelschubser
Threadstarter




Beiträge: 16

Huhu :D

Also, ich kann das hier aber auch nciht machen:

mysql_query("INSERT INTO battle (Battle_id1, Battle_id2, Player_2) VALUES (11, 21, serialize($armees))")

also direkt mit serialize da rein gehen, oder?

ich muss es über diesen Umweg machen:

$ser_text = serialize($armees);
mysql_query("INSERT INTO battle (Battle_id1, Battle_id2, Player_2) VALUES (11, 21, '$ser_text')")

oder?

  Profil   E-Mail   Editieren   Zitieren
chip
Foren-Team




Beiträge: 419

Variablen in Quotes zu schreiben ist eine schlechte Angewohnheit. Daher erklärt es sich auch, dass das mit serialize() nicht funktioniert, da serialize() eine Funktion ist, die NIEMALS in Anführungszeichen geschrieben werden darf, es sei denn man möchte die Funktion einfach nur als string haben.
So sollte es bei dir gehen:

1:
mysql_query("INSERT INTO battle (Battle_id1, Battle_id2, Player_2) VALUES (11, 21, '".serialize($armees)."')");


---

Diese Nachricht wurde geändert von: chip
  Profil   Website   Editieren   Zitieren
Tommmy
Pixelschubser
Threadstarter




Beiträge: 16

Ah cool, danke chip, das ist ja cool!

Dankeschön. Fürs Erste sind meine Fragen beantwortet *gg*

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » insert array into mysql table

Aktuelle Beiträge zur Hilfe im Forum für Homepage - insert array into mysql table im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8126519    Heute : 437     Gestern : 463     Online : 205     21.11.2024    14:05      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben