Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérer des données à l'aide d'un tableau multidimensionnel à partir de plusieurs champs

MISE À JOUR

(Wow, c'est difficile):Vous définissez tous vos champs de saisie dans votre formulaire HTML sous forme de tableaux. Vous pouvez soit supprimer ces [] ce qui en fait des tableaux ou vous pouvez utiliser name=insp[] sur votre insp -cases à cocher. Ensuite, sortez votre soumission avec var_dump($_POST) et vous voyez comment vous pouvez analyser le tableau.

Ou créez un tableau imbriqué. Quelque chose comme ceci vous aidera :

while($row = mysqli_fetch_assoc($result)) {

    extract($row);

    echo "<tr>\n
    <td><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][id]' /></td>\n
        <td><center>{$scaffreq_id}</center></td>\n
        <td><center>{$level} m</center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][a]' /></center></td>\n            
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][b]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][c]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][d]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][e]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][f]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][g]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][h]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][i]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][j]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][k]' /></center></td>\n
        <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][l]' /></center></td>\n
        <td><center><p><input type='text' name='items[{$scaffreq_id}][reason]' maxlength='255' size='45' value='Reason{$insp_reason}'></p></center></td>\n
        </tr>\n";
}

Il n'est pas facile d'aider sans voir le code du formulaire HTML. Mais il me semble que $ID n'est probablement pas un tableau. Donc, en utilisant foreach($ID as ...) n'est pas bon. Au lieu de cela, construisez votre chaîne comme ceci :

$query = "INSERT INTO `inspect` (`ID`,`a`,`b`,`c`,`d`,`e`,`f`,`g`) VALUES ";
$query .= "({$ID}, {$a}, {$b}, {$c}, {$d}, {$e}, {$f}, {$g})";

Avertissement :
Sachez que votre code n'est pas sécurisé et vulnérable aux injections SQL (voir ce SO Q&A ). Utilisez instructions préparées PDO au lieu de mysql() fonctions !