我有一个带有以下SQL代码的变量,它给了我一个错误(没有“ ORDER BY name ASC”,代码工作正常):
$sql = "SELECT * FROM incidents WHERE active = 1 AND username = '".$_SESSION['username']."' LIMIT " . $limitNumber . "," . $pageCounter " ORDER BY name ASC";
给出下一个错误:
解析错误:语法错误,意外的'“ ORDER BY name ASC”' (T_CONSTANT_ENCAPSED_STRING)在...
有什么办法解决这个问题吗?
致谢。
编辑:
出于上下文目的共享所有代码:
<?php
include 'includes/dbh.inc.php';
include 'user_session.php';
// Limit quantity of results per page
$pageCounter = 10;
// Show number of rows in the table
$sql = "SELECT * FROM incidents WHERE active = 1 AND username = '".$_SESSION['username']."'";
$result = mysqli_query($conn, $sql);
$rowNumbers = mysqli_num_rows($result);
//while ($row = mysqli_fetch_array($result)) {
// echo $row['id'] . " " . $row['username'] . " " . $row['phone'] . "<br>";
//}
// Number of pages available
$numberPages = ceil($rowNumbers/$pageCounter);
// Determine in which page is the user
if (!isset($_GET['page'])) {
$page = 1;
} else {
$page = $_GET['page'];
}
// Determine limit per page
$limitNumber = ($page-1)*$pageCounter;
// Show results
$sql = "SELECT * FROM incidents WHERE active = 1 AND username = '".$_SESSION['username']."' LIMIT " . $limitNumber . "," . $pageCounter " ORDER BY name ASC";
$result = mysqli_query($conn, $sql);
echo "<table>";
echo "<tr><th>Name</th><th>TMC Location</th><th>Non-TMC Location</th><th>Country Code</th><th>Origin Offset</th><th>To Offset</th><th>Start Time</th><th>End Time</th><th>Updated</th><th>Created</th><th>AlertC</th><th>Note</th><th>Group</th><th>Action</th><th>Worked By</th><th>Date</th><th>Incident ID</th><th>Username</th><th>Edit</th><th>Delete</th></tr>";
while ($row = mysqli_fetch_array($result)) {
$id = $row['id'];
$name = $row['name'];
$tmclocation = $row['tmclocation'];
$nontmclocation = $row['nontmclocation'];
$countrycode = $row['countrycode'];
$ooffset = $row['ooffset'];
$toffset = $row['toffset'];
$stime = $row['stime'];
$etime = $row['etime'];
$updated = $row['updated'];
$created = $row['created'];
$alertc = $row['alertc'];
$rcoby = $row['rcoby'];
$note = $row['note'];
$rcogroup = $row['rcogroup'];
$action = $row['action'];
$workedby = $row['workedby'];
$date = $row['rcodate'];
$username = $row['username'];
$incidentid = $row['incidentid'];
echo "<tr><td>".$name."</td><td>".$tmclocation."</td><td>".$nontmclocation."</td><td>".$countrycode."</td><td>".$ooffset."</td><td>".$toffset."</td><td>".$stime."</td><td>".$etime."</td><td>".$updated."</td><td>".$created."</td><td>".$alertc."</td><td>".$note."</td><td>".$rcogroup."</td><td>".$action."</td><td>".$workedby."</td><td>".$date."</td><td>".$incidentid."</td><td>".$username."</td><td><a href='myincidents.php?id=" . $row['id'] ."'>Edit</a></td><td><a id='a_id' href='editor/delete.php?id=" . $row['id'] ."' onClick='return confirm(\"Are you sure?\");'>Delete</a></td></tr>";
}
echo "</table>";
// Display number of pages
for ($page=1; $page <= $numberPages ; $page++) {
echo '<a href="myincidents.php?page=' . $page . '">' . $page . ' </a>';
}
?>
答案 0 :(得分:2)
order by
首先执行limit
。
$sql = "SELECT * FROM incidents WHERE active = 1 AND username = '".$_SESSION['username']."' ORDER BY name ASC LIMIT " . $limitNumber . "," . $pageCounter " ";
答案 1 :(得分:0)
在这一部分,
$pageCounter " ORDER BY name ASC"
您在.
之后错过了$pageCounter
...
AND ORDER BY应该在LIMIT之后,
因为我们需要先订购,然后才能得到结果...
尝试一下...
$sql = "SELECT * FROM incidents WHERE active = 1 AND username = '".$_SESSION['username']."' ORDER BY name ASC LIMIT " . $limitNumber . "," . $pageCounter " ";