我有两个php函数。 deletebooking工作正常,但另一个没有。我不确定将它们组合起来是否更好。
我运行这个调用函数。但是我无法运行deletebookingIf函数。任何人都可以看到任何错误吗?
$idnumber = $_GET['del'];
if($_GET['del']) {
deletebookingIf($idnumber);
deletebooking($idnumber);
}
function deletebooking($orderID) {
$sql = "DELETE FROM bs_reservations
WHERE id = '".$orderID."'";
$result = mysql_query($sql) or die("oopsy, error when tryin to delete events 2");
}
function deletebookingIf($orderID) {
$sql = "SELECT DURATION
FROM bs_reservations
WHERE id = '".$orderID."'";
$result = mysql_query($sql) or die("oopsy, error when tryin to delete events 2");
if ($result != "One Day Rental") {
$orderID2 = $orderID - 1;
$qq = "DELETE FROM bs_reservations
WHERE id = '".$orderID2."'";
$result = mysql_query($qq) or die("oopsy, error when tryin to delete events 2");
}
}
答案 0 :(得分:1)
而不是
if ($result != "One Day Rental") {
你应该:
if ($result) {
$data = mysql_fetch_assoc($result);
if ($data['duration'] != 'One Day Rental') {
// rest of the code
$ result包含一组行,而不是字段的内容。如果该id不是主键,则还应在查询中使用LIMIT 1以确保只返回一行。您还应该使用mysql_num_rows($ result)来确保您拥有该id的条目。
祝你好运!答案 1 :(得分:0)
您需要使用$result
(或类似)函数从select查询中循环mysql_fetch_assoc
以从查询中获取行。然后,对于每个匹配的行,您可以将该行ID添加到ID的本地数组中,然后运行带有delete
子句的in
查询,或者运行delete
查询mysql_fetch_assoc
块的每次迭代。查看http://php.net/mysql_fetch_assoc以获取一些提示。
while ($row = mysql_fetch_assoc($result)){
if ($row['DURATION'] == "One Day Rental"){
#delete the row
}
}