/ / Array erstellen funktioniert nicht wie ich dachte - php, arrays, mysqli

Das Erstellen von Array funktioniert nicht so wie ich dachte - php, arrays, mysqli

Ich bin wirklich verwirrt über Arrays und ich hoffe, dass jemand mir vielleicht helfen kann.

Ich versuche, Benutzer Auswahl von verschiedenen zu speichernBilder in einer MySQL-Datenbank (bis zu 3 Bilder zur Auswahl). Die Auswahlmöglichkeiten sind in der Tat Kontrollkästchen unter jedem Bild und ich möchte diese Auswahl als $ pic_ids in einem Array speichern.

Die Auswahlen werden in meiner Datenbank gespeichert, aber es scheint, dass ihnen keine Schlüssel zugewiesen werden, wie ich es erwartet habe, und ich kann sie anscheinend nicht benutzen.

Ich möchte in der Lage sein, die Bild-IDs zu verwenden, um die getroffene Auswahl anzuzeigen.

Das ist mein Ergebnis: [7] => 11,6 [8] => 9,8

aber ich muss auf diese Variablen einzeln eingehen. Ich würde das erwarten: [7] => 11, [8] => 6, [8] => 9, [9] => 8

Die Form:

 <form action="insert.php" method="GET">
<?php
<input type="checkbox" name="pic_id[]" value=".$row["id"].">
<input type="submit" name="submit" value="Add" />
?>

insert.php

$checkBox = implode(",", $_GET["pic_id"]);
if (isset($_GET["submit"])) {
$sql="INSERT INTO pics (pic_id) VALUES ("" . $checkBox . "")";

Druckarray

<?php
$sql="SELECT * FROM pics";
$query = mysqli_query($conn, $sql);
$myArray = Array();
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$myArray[]=$row["pic_id"];
}
print_r($myArray);
?>

Siehe obiges Ergebnis.

Antworten:

0 für die Antwort № 1

Trennen Sie einfach die Werte, die Sie beim Einfügen in die Datenbank verkettet haben. Durchlaufen Sie dann die Ergebnisse und fügen Sie sie zu Ihrem Array hinzu.

<?php
$sql="SELECT * FROM pics";
$query = mysqli_query($conn, $sql);
$myArray = array();
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
foreach(explode(",", $row["pic_id"]) as $id) {
$myArray[]= $id;
}
}
print_r($myArray);
?>