sql >> Database teknologi >  >> RDS >> Mysql

Indsæt data ved hjælp af multidimensional matrix fra flere felter

OPDATERING

(Wow, det er en hård en):Du definerer alle dine inputfelter i din HTML-formular som arrays. Du kan enten fjerne disse [] som gør dem til arrays, eller du kan bruge name=insp[] på din insp -afkrydsningsfelter. Udfør derefter din indsendelse med var_dump($_POST) og du kan se, hvordan du kan parse arrayet.

Eller opret et indlejret array. Noget som dette vil hjælpe:

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 er ikke let at hjælpe uden at se HTML-formularkoden. Men som det forekommer mig, $ID er højst sandsynligt ikke en matrix. Så ved at bruge foreach($ID as ...) er ikke god. Byg i stedet din streng sådan her:

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

Advarsel:
Vær opmærksom på, at din kode er usikker og sårbar over for SQL-injektioner (se dette SO Q&A ). Brug PDO-forberedte erklæringer i stedet for mysql() funktioner!




  1. Hvad er der galt med denne mysql-forespørgsel?

  2. Sådan laver du en rullebar JTable

  3. En databasemodel til en onlineundersøgelse. Del 3

  4. ORA-03113:slutningen af ​​filen på kommunikationskanalen