sql >> Databáze >  >> RDS >> Mysql

Vkládání dat pomocí vícerozměrného pole z více polí

AKTUALIZOVAT

(Wow, to je těžké):Definujete všechna svá vstupní pole ve formuláři HTML jako pole. Tyto [] můžete buď odstranit což z nich dělá pole, nebo můžete použít name=insp[] na vašem insp -zaškrtávací políčka. Poté odešlete svůj příspěvek pomocí var_dump($_POST) a uvidíte, jak můžete pole analyzovat.

Nebo vytvořte vnořené pole. Pomůže něco takového:

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

Bez zobrazení kódu HTML formuláře není snadné pomoci. Ale jak se mi zdá, $ID s největší pravděpodobností to není pole. Takže pomocí foreach($ID as ...) není dobrý. Místo toho vytvořte řetězec takto:

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

Upozornění:
Uvědomte si, že váš kód je nezabezpečený a zranitelný vůči vkládání SQL (viz tyto SO Q&A ). Použijte připravené výpisy CHOP místo mysql() funkce!




  1. Nelze se připojit k databázi:Přístup odepřen uživateli ''@'localhost' k databázi 'socialdb'

  2. Co je SQL a jak s ním začít?

  3. Aplikace se zhroutí při instalaci s chybou sqlite3_exec – Nepodařilo se nastavit synchronní režim =1 (normální)

  4. Jak provedu uloženou proceduru jednou pro každý řádek vrácený dotazem?