Как удалить строку из корзины дб в соответствии с нажатой кнопкой пользователем
Я работаю на веб-сайте торт, где пользователь может добавить торты в их корзину. Затем их сводка в корзине будет отображаться на этой странице. Пока я могу только генерировать сводку корзины из базы данных. Мне нужно разрешить пользователю нажимать на желаемую кнопку удаления и удалять соответствующую строку корзины из базы данных.
Php код
// To display the summary
$pick = "SELECT bname,quantity,price,sum FROM cart WHERE user_id LIKE '$search'";
$result1 = mysqli_query($conn, $pick);
$counting = 1;
if (mysqli_num_rows($result1) > 0) {
echo "<table align='center' class='summarytbl'>";
echo "<tr><th>No</th><th>Book Title</th><th>Price</th><th>Quantity</th><th>Total Price</th><th>Delete Order</th></tr>";
while($row = mysqli_fetch_assoc($result1)) {
echo "<tr><td>".$counting."</td><td>".$row['bname']."</td><td>".$row['price']."</td><td>".$row['quantity']."</td><td>".$row['sum']."</td><td><button type='button' class='delete' name=".$row['bname']." value=".$row['quantity'].">Delete</button></td></tr>";
$counting++;
}
echo"</table><br/><br/><br/>";
echo "<table align='center' class='new'>";
echo "<tr><td>Total Price</td><td>".$total."</td></tr>";
echo "<tr><td>Discount</td><td>".$discount."</td></tr>";
echo "<tr><td>Postage</td><td>".$postage."</td></tr>";
echo "<tr><td><b>Nett Price</b></td><td><b>".$nett."</b></td></tr>";
echo"</table>";
}
я надеялся использовать это заявление, чтобы получить значение баттона (количество) и имя (название торта), чтобы удалить строку из таблицы. Но это не работает. Пожалуйста, помогите.Спасибо.
if(isset($_POST['delete']))
{
$command = "DELETE FROM cart WHERE bname= ".$row['bname']." AND quantity=".$row['quantity'];
mysqli_query($conn,$command);
}
Вы должны сначала исправить все эти уязвимости SQL-инъекций (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). – Mike
Далее я не вижу ни одного столбца пользователя в вашей базе данных. Что делать, если у вас несколько пользователей? Если вы удалите 'WHERE bname = 'something'', вы удалите это для ** всех ** пользователей. Также после того, как вы добавили в этот запрос/таблицу поле пользователя, что мешает кому-либо вводить идентификатор другого пользователя и добавлять или удалять из своей корзины? – Mike
Добавление 'количества' к запросу бесполезно, потому что предположительно' bname' и 'user_id' (или все, что вы хотите назвать) вместе уникальны. Поэтому вам следует добавить [уникальный индекс] (http://stackoverflow.com/questions/635937/how-do-i-pecpeci-unique-constraint-for-multiple-columns-in-mysql) на обоих этих. – Mike