sql >> Databasteknik >  >> RDS >> Mysql

Infoga data med flerdimensionell array från flera fält

UPPDATERA

(Oj, det är svårt):Du definierar alla dina inmatningsfält i ditt HTML-formulär som matriser. Du kan antingen ta bort dessa [] som gör dem till arrayer eller så kan du använda name=insp[] på din insp -kryssrutor. Mata sedan ut ditt bidrag med var_dump($_POST) och du ser hur du kan analysera arrayen.

Eller skapa en kapslad array. Något sådant här kommer att hjälpa:

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

Det är inte lätt att hjälpa utan att se HTML-formulärkoden. Men som det verkar för mig, $ID är troligen inte en array. Så använder foreach($ID as ...) är inte bra. Bygg istället din sträng så här:

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

Varning:
Var medveten om att din kod är osäker och sårbar för SQL-injektioner (se denna SO Q&A ). Använd PDO-förberedda uttalanden istället för mysql() funktioner!




  1. Skulle detta ER-diagram istället använda ett ternärt samband

  2. Åtkomst nekad för användaren 'root'@'localhost' (med lösenord:YES) (Mysql::Error)

  3. Använder tidigare MySQL-datamapp på ny MySQL-installation

  4. Användning av PDO uppstod undantag kunde inte hitta drivrutinen