sql >> Database >  >> RDS >> Mysql

Gegevens invoegen met behulp van een multidimensionale array uit meerdere velden

UPDATE

(Wauw, dat is een moeilijke):je definieert al je invoervelden in je HTML-formulier als arrays. Je kunt die [] verwijderen waardoor ze arrays worden of je kunt name=insp[] . gebruiken op uw insp - selectievakjes. Voer vervolgens uw inzending uit met var_dump($_POST) en je ziet hoe je de array kunt ontleden.

Of maak een geneste array. Iets als dit zal helpen:

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";
}

Het is niet eenvoudig om te helpen zonder de HTML-formuliercode te zien. Maar zoals het mij lijkt, $ID is hoogstwaarschijnlijk geen array. Dus gebruik foreach($ID as ...) is niet goed. Bouw in plaats daarvan je string als volgt op:

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

Waarschuwing:
Houd er rekening mee dat uw code onveilig is en kwetsbaar voor SQL-injecties (zie deze SO Q&A ). Gebruik BOB voorbereide verklaringen in plaats van mysql() functies!




  1. Converteer tijdstempel naar datum in MySQL-query

  2. InnoDB vs. MyISAM querytijd invoegen

  3. MySQL GREATEST()-functie - Vind het grootste argument in een lijst met argumenten

  4. Hoe de primaire sleutel van de MySQL-tabel automatisch te laten toenemen met een of ander voorvoegsel?