webForumDet fria alternativet

Uppdatera databas beroende på val av checkboxar

PHP

3 svar · 852 visningar · startad av bigsky

Medlem sedan maj 2002821 inlägg
Frågan#1

Kör med mysql och php.

På en sida har jag ett antal checkboxar som alla har samma namn med name="report[]" men olika värden för value="". T ex. value="1", value="2" osv.

På den php sida som uppdaterar databasen vill jag ha följande kriterier:

Om en checkbox är ikryssad/vald:

Ska värdet läggas till i databasen om det inte redan finns där för då behöver ju inget göras.

Om en checkbox INTE är ikryssad/vald:

Ska värdet tas bort om det redan finns där, annars behöver inget göras.

Mina kolumner heter rest_id och ff_id i tabellen restform.

Medlem sedan maj 2002821 inlägg
#2

Någon som vill hjälpa mig?

Medlem sedan maj 2002821 inlägg
#3

Har löst det själv med:

foreach($_REQUEST['report'] as $report_id) {
$result = mysqli_query($con,"SELECT * FROM restform WHERE rest_id = $id AND ff_id = $report_id");
while($row = mysqli_fetch_array($result)) {
$ff_id = $row['ff_id'];
}
if ($report_id != $ff_id) {
mysqli_query($con,"INSERT INTO restform (rest_id, ff_id) VALUES ($id, $report_id)");
}
}

foreach($_REQUEST['report-id'] as $hidden_id) {
  if(!in_array($hidden_id, $_REQUEST['report'])) {
    mysqli_query($con,"DELETE FROM restform WHERE rest_id = '$id' AND ff_id = '$hidden_id'");
  }
}
Medlem sedan feb. 20005 891 inlägg
#4

Ser farligt ut det där, att mata $_REQUEST['report'] direkt in i en SQL-sats, utan att kontrollera vad man matar in för sträng. Kallas för SQL-injektion.

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)