/ / Vytvorenie poľa nefunguje tak, ako som si myslel - php, arrays, mysqli

Vytváranie poľa nefunguje, ako som myslel - php, array, mysqli

Ja som sa naozaj zmätený cez pole a dúfam, že niekto mi môže pomôcť.

Snažím sa ukladať používateľom výbery rôznychobrázky v databáze mysql (až po 3 obrázky na výber). Voľby sú v skutočnosti zaškrtávacie políčka pod každým obrázkom a chcem uložiť tieto voľby ako $ pic_id "s v poli.

Výbery sa ukladajú do mojej databázy, ale zdá sa, že nie sú priradené kľúče, ako som očakával, a zdá sa, že ich nepoužívam.

Chcem byť schopní použiť id obrázkov na zobrazenie vykonaných výberov.

To je môj výsledok: [7] => 11,6 [8] => 9,8

ale musím sa dostať k týmto premenným individuálne. Očakával by som to: [7] => 11, [8] => 6, [8] => 9, [9] => 8

Formulár:

 <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 . "")";

Vytlačiť pole

<?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);
?>

Pozrite vyššie uvedený výsledok.

odpovede:

0 pre odpoveď č. 1

Jednoducho oddeľte hodnoty, ako ste ich spojili pri vkladaní do databázy. Potom prelistujte výsledky a pridajte ich do poľa.

<?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);
?>