Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw dane za pomocą wielowymiarowej tablicy z wielu pól

AKTUALIZUJ

(Wow, to trudne):Definiujesz wszystkie pola wejściowe w formularzu HTML jako tablice. Możesz usunąć te [] co czyni je tablicami lub możesz użyć name=insp[] na twoim insp -pola wyboru. Następnie wyślij swoje zgłoszenie za pomocą var_dump($_POST) i widzisz, jak możesz przeanalizować tablicę.

Lub utwórz zagnieżdżoną tablicę. Coś takiego pomoże:

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

Nie jest łatwo pomóc bez wyświetlenia kodu formularza HTML. Ale jak mi się wydaje, $ID najprawdopodobniej nie jest tablicą. Więc używając foreach($ID as ...) Nie jest dobrze. Zamiast tego zbuduj swój ciąg w ten sposób:

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

Ostrzeżenie:
Pamiętaj, że Twój kod jest niezabezpieczony i podatny na wstrzyknięcia SQL (zobacz to pytanie i odpowiedź ). Użyj przygotowanych wyciągów PDO zamiast mysql() funkcje!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę uniknąć pełnego skanowania tabeli w tym zapytaniu mysql?

  2. Czy dane wejściowe w postaci szesnastkowej są wystarczające do oczyszczenia zapytań SQL?

  3. SQLAlchemy i złączenia, nie mamy kluczy obcych

  4. Wyszukiwanie pełnotekstowe MySQL w wielu tabelach z różnymi polami

  5. wypisz wszystkie tabele w bazie danych za pomocą MySQLi