无法在PHP中查看数据库中的表

时间:2013-08-30 03:05:12

标签: php mysql

我的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'附近使用正确的语法”

3 个答案:

答案 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