0

jurnal_trainingPhpMyAdminにこのテーブルがあります

-------------------------------------------------------------------
| 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では、「カテゴリ」と「ステータス」が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 構文にエラーがあります。1 行目の 'WHERE status = 0' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」

4

3 に答える 3

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
于 2013-08-30T03:08:21.833 に答える
0

エラーは、句のlimit前にwhere句があるためです。

句の順序は重要です。詳細については、 Select 構文を参照してください。

また、 extension は非推奨になりました。使用する推奨 API については、「APIの選択mysql」の「推奨 API」を参照してください。

次のようにクエリを更新します。

$sql = "SELECT * ".
"FROM jurnal_training ".
"WHERE status = 1 ". 
"LIMIT $offset, $rec_limit ";
于 2013-08-30T03:07:44.633 に答える
0

これ:

SELECT * FROM jurnal_training LIMIT $offset , $rec_limit WHERE status = 1

次のようにする必要があります。

SELECT * FROM jurnal_training WHERE status = 1 LIMIT $offset , $rec_limit
于 2013-08-30T03:07:47.963 に答える