我的PhpMyAdmin
中有这个表jurnal_training
-------------------------------------------------------------------
| id_jurnal | kategori | judul | isi_jurnal | status |
-------------------------------------------------------------------
| 1 | WS | Example 1 | content example 1 | 0 |
| 2 | WS | Example 2 | content example 2 | 1 |
| 3 | WS | Example 3 | content example 3 | 1 |
| 4 | WS | Example 4 | content example 4 | 0 |
.
.
.
在PHP中,我需要查看'kategori'和'jurnal',其中'status'为0;
这是我的代码:
<?
$rec_limit = 9;
$sql = "SELECT count(judul) FROM jurnal_training ";
$retval = mysql_query($sql);
$row = mysql_fetch_array($retval);
$rec_count = $row[0];
if( isset($_GET{'paging_view'} ) )
{
$paging = $_GET{'paging_view'} + 1;
$offset = $rec_limit * $paging ;
}
else
{
$paging = 0;
$offset = 0;
}
$left_rec = $rec_count - ($paging * $rec_limit);
$sql = "SELECT * ".
"FROM jurnal_training ".
"LIMIT $offset , $rec_limit ".
"WHERE status = 1";
$count=1;
$retval = mysql_query($sql) or die(mysql_error());;
while ($row = mysql_fetch_array($retval))
{
echo "<tr >
<td>",$count,"</td>
<td>",$row['kategori'],"</td>
<td><a href='index.php?do=view_jurnal&id_jurnal=",$row['id_jurnal'],"'>",$row['judul'],"</a></td>
<td><a href='index.php?do=edit_jurnal&id_jurnal=",$row['id_jurnal'],"' class='process_button_s' >Edit</a><a href='index.php?do=delete_jurnal&id_jurnal=",$row['id_jurnal'],"'class='process_button_s'>Delete</a></td>
<td><a href='index.php?do=train_process&id_jurnal=",$row['id_jurnal'],"' class='process_button'>Train Data</a></td>
</tr>";
$count++;
}
?>
在上面的变量$ sql中,如果我在查询结尾处没有添加“WHERE status = 0”,则在PHP中查看表格。但是如果我把“WHERE status = 0”表没有查看并得到错误结果:
“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行的'WHERE status = 0'附近使用正确的语法”
答案 0 :(得分:1)
你有SQL语句:
SELECT *
FROM jurnal_training
LIMIT $offset , $rec_limit
WHERE status = 1
LIMIT
位于WHERE
:
SELECT *
FROM jurnal_training
WHERE status = 1
LIMIT $offset , $rec_limit
答案 1 :(得分:0)
错误是因为limit
子句之前有where
子句。
条款的顺序很重要。有关详细信息,请参阅Select Syntax。
另请注意,mysql
扩展程序现已弃用,请参阅“Choosing an API”中的“推荐API”,以获取建议使用的API。
按如下方式更新您的查询:
$sql = "SELECT * ".
"FROM jurnal_training ".
"WHERE status = 1 ".
"LIMIT $offset, $rec_limit ";
答案 2 :(得分:0)
此:
SELECT * FROM jurnal_training LIMIT $offset , $rec_limit WHERE status = 1
应该是:
SELECT * FROM jurnal_training WHERE status = 1 LIMIT $offset , $rec_limit