php - Why can't I delete multiple values using checkboxes? -
i don't know i'm doing wrong here, can't delete multiple values database.
i have 1 html table values database table, , inserted button delete row.
but button doesn't work, don't know why.
i'm using mvc structure, i'm following own rules.
i made on view (i cant post original code, sorry)
function print($valuearray){ //calling function <table> //html table here <tr> <td>id</td> <td>delete</td> foreach($valuearray $key){ echo " <form method='post'> //form delete values <td> ".$key['id']."</td> <td><input name='checkbox[]' type='checkbox'/></td> <input type='submit' name='delete' /> </form>";
and did on model
function function(){ $sql = ("select * mytable"); $result = mysql_query($sql); if(isset($_post['delete'])) { $checkbox = $_post['checkbox']; for($i=0;$i<count($checkbox);$i++){ $del_id = $checkbox[$i]; $sql = "delete * mytable id ='$del_id'"; $result = mysql_query($sql); } } print($valuearray); }
its html problem.
you have give checkboxes names , values:
<input type="checkbox" name="delete[]" value="<?=$key['id']?>" />
notice name of checkbox 'delete[]', , not 'delete'.
in php part should check $_post['delete'] exists:
if(isset($_post['delete']) && !empty($_post['delete'])) {
after foreach $_post['delete'] value - use separate delete statement;
foreach($_post['delete'] $delete_id) { $sql = 'delete mytable id="'.$delete_id.'" limit 1'; }
notice limit 1 part - great limit queries, if delete smth. in case delete maximum of 1 row table.
in case of php & mysql database - might want use prepared statements mysqli connector. but, that's question.
or join them in 1 query, better approach.
$sql = 'delete mytable id in (1,2,3,4,5);' mysql_query($sql);
where 1,2,3,4,5 - delete_ids.
Comments
Post a Comment