Php 请问,在我将顺序转换为desc后,为什么仍然有错误?下面是错误消息“error!您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第3行附近的'T.TechName ASC,L.Time DESC'使用的正确语法”啊,对不起,我相信您
Php 请问,在我将顺序转换为desc后,为什么仍然有错误?下面是错误消息“error!您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第3行附近的'T.TechName ASC,L.Time DESC'使用的正确语法”啊,对不起,我相信您,php,mysql,Php,Mysql,请问,在我将顺序转换为desc后,为什么仍然有错误?下面是错误消息“error!您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第3行附近的'T.TechName ASC,L.Time DESC'使用的正确语法”啊,对不起,我相信您不能同时使用ASC和DESC。只需使用DESC或ASC在最后或您的查询,这是可以这样做,因为当我改变它像上面给出的代码,它现在没有问题(至少现在工作)哦,我明白了,因为我只是按照这样的方式写C++,所以犯这种粗心的错误,对不起。切换语言时的差异
请问,在我将顺序转换为desc后,为什么仍然有错误?下面是错误消息“error!您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第3行附近的'T.TechName ASC,L.Time DESC'使用的正确语法”啊,对不起,我相信您不能同时使用ASC和DESC。只需使用DESC或ASC在最后或您的查询,这是可以这样做,因为当我改变它像上面给出的代码,它现在没有问题(至少现在工作)哦,我明白了,因为我只是按照这样的方式写C++,所以犯这种粗心的错误,对不起。切换语言时的差异;)请问,在我将顺序转换为desc后,为什么仍然有错误?下面是错误消息“error!您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第3行附近的'T.TechName ASC,L.Time DESC'使用的正确语法”啊,对不起,我相信您不能同时使用ASC和DESC。只需在末尾使用DESC或ASC,或者您的查询我认为这样做是可以的,因为当我像上面给出的代码那样更改它时,它现在就没有问题了(至少它现在可以工作了)
$query = "SELECT *
FROM Tech AS T, Client AS C, Site AS S, Log AS L
WHERE T.TechID=L.TechID, C.ClientID=L.ClientID, S.SiteID=L.SiteID";
if($sort=="Tech")
$query += "ORDER BY T.TechName ASC, L.Time DSC";
else if($sort=="Client")
$query += "ORDER BY C.ClientName ASC, L.Time DSC";
$result = mysql_query($query) or die('Error! ' . mysql_error());;
print "Real-Time check in/check out<br>";
print "<table><th><td>Tech</td><td>Client</td><td>Site</td>";
print "<td>Date and Time</td><td>Type</td></th>";
while($row = mysql_fetch_array($result)){
print "<tr><td>".$row['T.TechName']."</td>";
print "<td>".$row['C.ClientName']."</td>";
print "<td>".$row['S.SiteName']."</td>";
print "<td>".$row['L.Time']."</td>";
print "<td>".$row['L.Type']."</td></tr>";
}
print "</table>";
SELECT *
FROM Tech AS T, Client AS C, Site AS S, Log AS L
WHERE T.TechID=L.TechID AND C.ClientID=L.ClientID AND S.SiteID=L.SiteID
SELECT *
FROM Tech AS T
JOIN Client AS C on T.TechID=L.TechID
JOIN Site AS S on C.ClientID=L.ClientID
JOIN Log AS L on S.SiteID=L.SiteID
if (...) {
} else {
if (...) {
}
}
# Future improvement: abstract each section into methods that are part of separate layers
# Database access
$statement = 'SELECT T.TechName, C.ClientName, S.SiteName, L.Time, L.Type
FROM Log AS L
JOIN Tech AS T ON T.TechID=L.TechID
JOIN Client AS C ON C.ClientID=L.ClientID
JOIN Site AS S ON S.SiteID=L.SiteID';
if ($sort === 'Tech') {
$query .= ' ORDER BY T.TechName ASC, L.Time DESC';
} elseif ($sort === 'Client') {
$query .= ' ORDER BY C.ClientName ASC, L.Time DESC';
}
try {
$data = $db->query($statement);
} catch (PDOException $exc) {
$data = array();
# handle error appropriately: inform user that there was an internal error. Log the actual error and possibly notify the dev team.
...
}
# Output/User interface
$fields = array('TechName' => 'Tech', 'ClientName' => 'Client', 'SiteName' => 'Site', 'Time' => 'Date and Time', 'Type' => 'Type');
if ($data) {
?>
<h3>Real-Time check in/check out</h3>
<table>
<thead>
<tr><th><?php echo implode('</th><th>', $fields) ?></th></tr>
</thead>
<tbody>
<?php foreach ($data as $row) { ?>
<tr>
<?php foreach ($fields as $field => $label) { ?>
<td><?php echo $row[$field] ?></td>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
<?php
}
$query = "SELECT *
FROM Tech AS T, Client AS C, Site AS S, Log AS L
WHERE T.TechID=L.TechID AND C.ClientID=L.ClientID AND S.SiteID=L.SiteID";
if($sort=="Tech")
$query .= " ORDER BY T.TechName ASC, L.Time DESC";
else if($sort=="Client")
$query .= " ORDER BY C.ClientName ASC, L.Time DESC";
L.SiteIDORDERBY
L.SiteID ORDER BY