頁:
[1]
delete 語法問題
本帖最後由 mood5 於 2015-12-19 11:05 AM 編輯從訂單詳細內容要執行 刪除按鈕卻發生錯誤,請問是哪裡語法有問題@_@?
<?php
header("Content-Type: text/html; charset=utf-8");
include("connsql.php"); //含入連結資料庫檔案
$seldb = @mysql_select_db("orderdrink"); //連結資料庫
if (!$seldb) die("資料庫選擇失敗!");
if (isset($_GET["update"])) {
$order = $_GET["update"];
$sql_query = "UPDATE `order` SET `finish`=1 WHERE `orderid`='" . $order . "'";
$result = mysql_query($sql_query);
header("Location: index.php");
}
$row_detail = array();
$order = $_GET["order"];
$sql_query = "SELECT * FROM `order` WHERE `orderid`='" . $order . "'";
$result = mysql_query($sql_query);
$numorder = 0;
$numorder = mysql_num_rows($result);
if($numorder>0) {
$row_order = mysql_fetch_array($result, MYSQL_ASSOC);
$sql_query = "SELECT * FROM `category` WHERE `categoryid`='" . $order . "'";
$result = mysql_query($sql_query);
$numdetail = mysql_num_rows($result);
$i = 0;
while($row_detail[$i] = mysql_fetch_array($result, MYSQL_ASSOC)) {
$i++;
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=yes, maximum-scale=1, minimum-scale=1, width=device-width" />
<title>雲端訂購系統</title>
<link href="jquery-mobile/jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css">
<script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="jquery-mobile/jquery.mobile-1.0.min.js" type="text/javascript"></script>
<style type="text/css">
.subject {
font-size: 12pt;
font-weight: bold;
color: #FF0000;
margin-bottom: 10px;
background-image: url(images/icon_grean.gif);
background-repeat: no-repeat;
background-position: left center;
padding-left: 16px;
}
.datatable {
border-collapse:collapse;
border:1px solid black;
background-color:#FFF;
}
.datatable td{
border:1px solid #CCC;
}
.datatable th{
color: #FFF;
background-color: #900;
border: 1px solid #CCC;
}
</style>
</head>
<body>
<div data-role="page" id="showOrder">
<div data-role="header" data-position="fixed" form method="get" data-ajax="false">
<h1>訂單查詢-顯示訂單</h1>
</div>
<div data-role="content">
<?php if($numorder>0) { ?>
<div id="orderMessage">
<h4>客戶資訊 </h4>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0" class="datatable">
<tr>
<th width="70" align="center">資訊</th>
<th>內容</th>
</tr>
<tr>
<td align="center"><strong>訂單號碼</strong></td>
<td><?php echo $row_order["orderid"]; ?></td>
</tr>
<tr>
<td align="center"><strong>姓名</strong></td>
<td><?php echo $row_order["customername"]; ?></td>
</tr>
<tr>
<td align="center"><strong>聯絡電話</strong></td>
<td><div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div></td>
</tr>
<tr>
<td align="center"><strong>地址</strong></td>
<td><?php echo $row_order["customeraddress"]; ?></td>
</tr>
<tr>
<td align="center"><strong>訂貨時間</strong></td>
<td><?php echo $row_order["ordertime"]; ?></td>
</tr>
<tr>
<td align="center"><strong>製作狀況</strong></td>
<td><?php if($row_order["finish"]==0) { echo "未處理"; } else { echo "已處理"; } ?></td>
</tr>
</table>
<h4>訂單內容 </h4>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0" class="datatable">
<tr>
<th width="50" align="center">編號</th>
<th align="center">名稱</th>
<th width="50" align="center">單價</th>
<th width="50" align="center">數量</th>
<th width="60" align="center">金額</th>
</tr>
<?php for($i=0; $i<$numdetail; $i++) { ?>
<tr>
<td align="center"><?php echo $row_detail[$i]["categoryid"]; ?></td>
<td align="center"><?php echo $row_detail[$i]["categoryname"]; ?></td>
<td align="center"><?php echo $row_detail[$i]["productprice"]; ?></td>
<td align="center"><?php echo $row_detail[$i]["productquantity"]; ?></td>
<td align="center"><strong> <?php echo $row_detail[$i]["productprice"]*$row_detail[$i]["productquantity"]; ?> </strong></td>
</tr>
<?php } ?>
<tr>
<td colspan="4" align="left">總計</td>
<td align="center"><strong>$ <?php echo $row_order["total"]; ?> </strong></td>
</tr>
</table>
</div>
<div>
<table width="90%" border="0" align="center" cellpadding="4" cellspacing="0">
<tr>
<td><div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div></td>
<td><div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div></td>
<td><div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div></td> </tr>
</table>
</div>
<?php } else {?>
<div style="font-size:28px; text-align:center; color:#FF0000;">此訂單號碼不存在!</div>
<div>
<table width="90%" border="0" align="center" cellpadding="4" cellspacing="0">
<tr>
<td><div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div></td>
</tr>
</table>
</div>
<?php } ?>
</div>
</div>
</body>
</html>
delete.php
<?php
$name="";$result="";
$orderid = $_GET["orderid"]; // 取得書號
$db = mysql_connect("localhost","root","1234");
mysql_select_db("orderdrink"); // 選擇資料庫
if(isset($_POST["send"])){ // 是否是表單送回
$sql = "DELETE FROM order WHERE orderid='" . $orderid . "'";
if (!mysql_query($sql)) // 執行 SQL 指令
$result = "刪除記錄失敗...<br/>" . mysql_error();
else header("Location: index.php"); // 轉址
}
else {
$sql = "SELECT * FROM order WHERE orderid='" . $orderid . "'";
$rows = mysql_query($sql);
$row = mysql_fetch_row($rows);
}
mysql_close($db);
?>
<?php
$pageTiltle="123";
$JSFile = "DisableAjax.js";
include("connsql.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
<link href="jquery-mobile/jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css">
<script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="jquery-mobile/jquery.mobile-1.0.min.js" type="text/javascript"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>刪除紀錄</h1>
</div>
<div data-role="content">
<ul data-role="listview" data-inset="true">
<li>訂單編號: <?php echo $orderid ?></li>
</ul>
<form method="post" action="">
<div data-role="fieldcontain" >
<input type="submit" data-inline="true" name="send" value="刪除紀錄" />
</div>
</form>
<?php echo $result ?>
</div>
</div>
<?php include("connsql.php"); ?>
</body>
</html>有抓到ID編號,可是刪除失敗
錯誤代碼:刪除記錄失敗...
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order WHERE orderid=''' at line 1...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 你 delete 的 form 沒有把 orderid 傳遞下去
action 加上 ?orderid=<?=$orderid?>
另 header("Location: 並沒有中止程序的功能
下面要加 exit
不然雖然看不到但下面還是會跑 本帖最後由 chevylin0802 於 2015-12-22 01:01 PM 編輯
感覺很像是學生在寫學校作業
沒規劃也沒有組織性
語法寫法更是完全沒有一致性
$sql_query = "UPDATE `order` SET `finish`=1 WHERE `orderid`='" . $order . "'";
$sql_query = "SELECT * FROM `order` WHERE `orderid`='" . $order . "'";
$sql = "DELETE FROM order WHERE orderid='" . $orderid . "'";
仔細去比對看看你的語法差異
還有
寫企業程式不能為了讓它可以動作而做
沒條理性沒擴充性
萬一哪天要改用其它的資料庫引擎的時候
是不是又要大改版一次?
許多安全性較高的資料庫
還可能要求把它寫到stored procedure裏面
你還在php裏面搞INSET? UPDATE? DELETE?
呼叫資料庫引擎與許多函數
應該建立成一個class物件
所有SQL語法擺到物件裏面去
統一管理
也可以避免許多犯錯
比如已經open的資料庫再一次呼叫open資料庫
像你的delete.php一開頭裏所寫的
也沒對是否已經open database 做檢查就又重覆open databse
你確信這樣子會動嗎?
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]