-1

このファイルを起動すると、この php コーディングで問題が発生しました。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 10' at line 1

何が間違っているのかを理解するのを手伝ってもらえますか?

<?php
  $open=mysql_connect('localhost','ID','PW') or die(mysql_error());
  mysql_select_db('personal_info',$open);

  $tablename='writing';
  if($page=='') $page=1;
  $list_num=10;
  $page_num=10;
  $offest=$list_num*($page-1);

  $query="select * from $tablename";
  $result=mysql_query($query) or die(mysql_error());
  row=mysql_fetch_row($result);
  $total_no=$row[0];

  $total_page=ceil($total_no/$list_num);
  $cur_num=$total_no - $list_num*($page-1);

  $query="select*from $tablename order by number desc limit $offset, $list_num";
  $result=mysql_query($query) or die (mysql_error());
?>
4

3 に答える 3

4
$offest=$list_num*($page-1);

の入力を間違え$offsetたため、値は未定義です。また、@ user4035 が述べたように、前後にスペースを追加しますSELECT*FROM

これらで問題が解決しない場合はecho $query;、クエリを実行するのではなく、結果を投稿してください。

また、クエリを複数の行に分割することもお勧めします。そう

$query="SELECT * FROM $tablename 
        ORDER BY number DESC 
        LIMIT $offset, $list_num"; 

これは読みやすさに役立ちます。また、mysql エラーをデバッグするときに、mysql はエラーを含む行を指します。

于 2013-06-01T23:16:28.540 に答える
3

あなたの2つのクエリは次のとおりです。

select * from $tablename

select*from $tablename order by number desc limit $offset, $list_num

1 つの可能性は、それnumberがテーブル内のフィールドではないということです。

ただし、より可能性が高いのは、 の問題$offsetです。値を指定していないため、limit句はlimit ,xxxであり、これは許可されていません。

$offest一方、の値を設定します。

$offest=$list_num*($page-1);

うまくいけば、これはデータベースに渡される実際のクエリを出力する方法を教えてくれるはずです。その場合、問題は明らかです。

于 2013-06-01T23:15:57.087 に答える
0
<?php
    $open=mysql_connect('localhost','ID','PW') or die(mysql_error());
    mysql_select_db('personal_info',$open);

    $tablename='writing';
    if($page=='') $page=1;
    $list_num=10;
    $page_num=10;
    $offset=$list_num*($page-1);

    $query="SELECT * FROM $tablename";
    $result=mysql_query($query) or die(mysql_error());
    $row=mysql_fetch_row($result);
    $total_no=$row[0];

    $total_page=ceil($total_no/$list_num);
    $cur_num=$total_no - $list_num*($page-1);

    $query="SELECT * FROM $tablename ORDER BY number DESC LIMIT $offset, $list_num";
    $result=mysql_query($query) or die (mysql_error());
?>
于 2013-06-01T23:16:40.277 に答える