PHP & MySQL - Deleting table rows problem -
okay script supposed delete specific users case stored in 2 mysql tables reason when user deletes specific case deletes users cases want delete case user selects. wondering how can fix problem? in advance helping.
here php & mysql code.
if(isset($_post['delete_case'])) { $cases_ids = array(); $mysqli = mysqli_connect("localhost", "root", "", "sitename"); $dbc = mysqli_query($mysqli,"select cases.*, users_cases.* cases inner join users_cases on users_cases.cases_id = cases.id users_cases.user_id='$user_id'"); if (!$dbc) { print mysqli_error($mysqli); } else { while($row = mysqli_fetch_array($dbc)){ $cases_ids[] = $row["cases_id"]; } } foreach($_post['delete_id'] $di) { if(in_array($di, $cases_ids)) { $mysqli = mysqli_connect("localhost", "root", "", "sitename"); $dbc = mysqli_query($mysqli,"delete users_cases cases_id = '$di'"); $dbc2 = mysqli_query($mysqli,"delete cases id = '$di'"); } } }
here xhtml code.
<li> <input type="text" name="file[]" size="25" /> <input type="text" name="case[]" size="25" /> <input type="text" name="name[]" size="25" /> <input type="submit" name="delete_case" id="delete_case" value="delete case" /> <input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" /> </li> <li> <input type="text" name="file[]" size="25" /> <input type="text" name="case[]" size="25" /> <input type="text" name="name[]" size="25" /> <input type="submit" name="delete_case" id="delete_case" value="delete case" /> <input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" /> </li> <li> <input type="text" name="file[]" size="25" /> <input type="text" name="case[]" size="25" /> <input type="text" name="name[]" size="25" /> <input type="submit" name="delete_case" id="delete_case" value="delete case" /> <input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" /> </li>
here mysql tables.
create table cases ( id int unsigned not null auto_increment, file varchar(255) not null, case varchar(255) not null, name varchar(255) not null, primary key (id) ); create table users_cases ( id int unsigned not null auto_increment, cases_id int unsigned not null, user_id int unsigned not null, primary key (id) );
from first glance it's because html contained in same form. so, no matter delete case button click, every 1 of delete_id[] hidden fields going submitted server.
so you'd need separate each row it's own form like...
<li> <form method="post" action="someurl.php"> <input type="text" name="file[]" size="25" /> <input type="text" name="case[]" size="25" /> <input type="text" name="name[]" size="25" /> <input type="submit" name="delete_case" id="delete_case" value="delete case" /> <input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" /> </form> </li>
or else changing submit buttons plain button , adding javascript...
Comments
Post a Comment