Я искал везде и не могу найти ответ, я считаю, что у меня есть правильный код, но может быть опечатка.
Что здесь происходит?
У меня есть ссылка, которая правильно помещает идентификатор продукта в URL-адрес, как показано:
userAccount.php
:
while($columnDelete = mysqli_fetch_array($query, MYSQLI_ASSOC)){ echo "<section class='product'> <a href='extras/deleteProcess.php?productId=".$columnDelete['productId']."' class='deleteProduct' style='color:#990000;font-family:arial;font-weight:bold;font-size:12pt;background:transparent;'>Delete?</a> <section class='productImg'> <a target='_self' href='fullProductInfo.php?productId=".$columnDelete['productId']."'> <img src='http://www.littlepenguindesigns.co.uk/pages/CMX/images/products/".$columnDelete['productImg']."' alt='".$columnDelete['productName']."' border='0' width='230' height='200' border='0' /> </a> </section> <section class='productName'><a target='_self' href='fullProductInfo.php?productId=".$columnDelete['productId']."'>".$columnDelete['productName']."</a></section> <section class='productPrice'>£".$columnDelete['price']."</section></section>"; }
$columnDelete['productId'];
отправляет правильный идентификатор URL- deleteProcess.php
странице deleteProcess.php
, я могу увидеть productId
в URL-адресе, и я также повторил его на странице, чтобы проверить, это показывает:
deleteProcess.php
:
$productId = $_GET['productId']; $con = mysqli_connect("BLAH","BLAH","BLAH","BLAH") or die('Server connection not possible.'); $sql = ("DELETE FROM `product` WHERE `product`.`productId`= $productId"); mysqli_query($con, $sql); echo "Deleted product ID: $productId successfully.<br /><br /><br /><br /><br /><br /> <a href='../userAccount.php#deletion'>Go back to user account and delete another.</a>";
Я не могу понять, что происходит, продукт deleteProcess.php
в deleteProcess.php
и на страницу, но не удаляется, он также не показывает ошибок. Поскольку я новичок в php и mysql, я думал, что лучше всего научусь, поскольку я придумал ответ, который, как я думал, не спрашивал, так может кто-нибудь сказать мне, что я делаю неправильно, или указать мне в правильном направлении.
$sql = ("DELETE FROM `product` WHERE `product`.`productId`= $productId"); mysqli_query($con,$sql);
в
$sql = "DELETE FROM `product` WHERE `product`.`productId`= $productId"; mysqli_query($con,$sql) OR DIE(mysqli_error($con)); //useful for debugging
предупреждение! этот код уязвим для SQL-инъекции. исправить SQL-инъекцию путем дезинфекции всего пользовательского ввода.
$productId = mysql_real_escape_string($_GET['productId']); // use mysql_real_escape_string on $_GET $con = mysqli_connect("BLAH","BLAH","BLAH","BLAH") or die('Server connection not possible.'); $sql = "DELETE FROM `product` WHERE `product`.`productId`= '$productId'"; //add single quotes around variable $productid to seperate string from query mysqli_query($con, $sql);
Проверка выполнения запроса возвращает успех или нет
$productId = $_GET['productId']; $con = mysqli_connect("BLAH","BLAH","BLAH","BLAH") or die('Server connection not possible.'); $sql = ("DELETE FROM `product` WHERE `product`.`productId`= $productId"); $result = mysqli_query($con, $sql); if(!$result) die("Query failed".mysql_error()); echo "Deleted product ID: $productId successfully.<br /><br /><br /><br /><br /><br /> <a href='../userAccount.php#deletion'>Go back to user account and delete another.</a>";