
先ほども質問したのですが再度質問させていただきます
mysql limitページ分割を行っていてエラーは消せたのですが今度
SQLエラーになり出来ません
前の人が質問したのを参考にしてつくったのですがうまくいかず困っています
検索結果を10件ずつ表示して
googleみたいに 1l 2l 3
みたいな感じやりたいです
<body>
<?php
error_reporting(E_ALL ^ E_NOTICE);
//データベースに接続
if (!$con = mysql_connect("localhost", "root", "admin")) {
echo "接続エラー" ;
exit ;
}
//データベースを選択
if (!mysql_select_db("db_test", $con)) {
echo "データベース選択エラー" ;
exit ;
}
//LIMITを使ったSELECT文を作成
$sql = "select * from tbl_test where (氏名 LIKE '%{$_GET['name']}%') or (住所 LIKE '%{$_GET['name']}%')";
$sql = "limit" . $page * 10 . ", 10" ;
//SQL実行
if (!$res = mysql_query($sql)) {
echo "SQLエラー<BR>" ;
exit ;
}
//検索結果表示
echo "<table border=1>" ;
echo "<tr>
<th>番号</th>
<th>氏名</th>
<th>住所</th>
<th>操作</th>
</tr>" ;
while($row = mysql_fetch_array($res)){
$ID = htmlspecialchars($row['番号']);
$NAME = htmlspecialchars($row['氏名']);
$ADDR = htmlspecialchars($row['住所']);
echo "<tr>
<td>$ID</td>
<td>$NAME</td>
<td>$ADDR</td>
<td><a href='edit.php?番号=$ID'>修正</a>
<a href='delete.php?番号=$ID'>削除</a></td>
</tr>";
//検索条件に該当する全データの件数取得
$sql = "select count(*) from tbl_test " ;
$sql = "where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')";
if (!$res = mysql_query($sql)) {
echo "SQLエラー<BR>" ;
exit ;
}
$row = mysql_fetch_array($res) ;
$cnt = $row[0] ;
//ページ表示
if(!$cnt > 10)
echo ceil($cnt / 10), "ページの中の", $page + 1, "ページ目を表示<br>" ;
//前の10件
if ($page_num != 0) {
echo "<a href = find.php?name=".$name. ". $page -1.>" ;
echo "< 前の10件";
}
//次の10件
if (($page_num + 1)*10 < $cnt) {
echo "<a href = find.php?name=".$name. ". $page +1.>" ;
echo " 次の10件 &g</a>t" ;
}
//結果セットの開放
mysql_free_result ($res) ;
//データベースから切断
mysql_close($con) ;
}
?>
</body>
</html>
No.2ベストアンサー
- 回答日時:
>limit0, 10
>こう表示されます
前回、「下の行で$sqlが上書きされている」って書きましたよね
読まなかった?理解できなかった?わかってて無視した?
$sql = "limit" . $page * 10 . ", 10" ;
は、最低でも
$sql .= "limit" . $page * 10 . ", 10" ;
でしょ?
この回答への補足
すいませんスペース入ってました
エラーは消えたのですが
select * from tbl_test where (氏名 LIKE '%田%') or (住所 LIKE '%田%')limit0, 10
こう表示されデータが表示されません
すいません
$sql.= "limit" . $page * 10 . ", 10" ;にすると
Parse error: syntax error, unexpected '=' in
エラーが出たので記述が違うかなと思い消してしまいました
ごめんなさい
指摘ありがとうございます
なぜエラーが出るのでしょ?
ほかのところが間違っているのでしょうか
No.3
- 回答日時:
で、print $sqlしてみて文法エラーを確認してほしいんですが
$sql .= " limit " . $page * 10 . ", 10" ;
と、limitの文字の前後に空白をいれるところから始めてみてください
決して差別をするわけではないですが、念のため教えてほしいのですが
「文字通りの意味しか理解できないコミュニケーション障害」的な
ハンデをお持ちの方ではないですよね?
それによって教える表現がだいぶかわってくるので・・・
この回答への補足
文法エラーを徐々に消すことができたのですが
例えば"田"と打つと引っかかるのは2件なのですが1件しか表示されません
あと1つ目のSQLエラーを抜けたのですが2つ目のSQLエラーが表示されたので1つも目同様
echo "SQLエラー<BR>" ;
をecho "$sql <BR>";にしたのでまずいですか?
入れたら
Warning: mysql_fetch_array(): 5 is not a valid MySQL result resource
こう表示されたのですがまずいですかね
そのようなハンデは持ってないです。
ただ少し頭の回転が悪いので丁寧に説明していただけるとありがたいです
" limit "にしたのですが変わりません
$sql.=" limit " . $page * 10 . ", 10";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プレースホルダを使った複数カ...
-
MySQLカラム名は日本語と英数字...
-
LIMIT で条件を満たしているの...
-
LIKE で清音と濁音・半濁音を区...
-
旧filemakerで和暦(令和など)...
-
XAMPPのMySQLを外部から接続で...
-
MYSQLでストアド
-
order の昇降順で 250 より...
-
ヌル値は記憶容量を必要としな...
-
ERROR 1045 (28000) (using pas...
-
windows8でXAMPPが利用できませ...
-
ADOのバージョンを確認する方法
-
Windows に Postgres 旧バージョン
-
SQL Server 2012のサポート期間...
-
postgreSQLのデータ型
-
オラクルのデータ型・通貨について
-
SQL開発環境ソフトウェアである...
-
oracle8i?
-
MySQL Client API versionについて
-
プライマリーキーの昇順でソー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql sqlエラー
-
配列の要素でmysqlに問い合わせ
-
PHP+MYSQLで検索画面を作成し...
-
フォームからmySQL-DBにデータ...
-
フォームから送信した値とMySQL...
-
mysql insert文
-
PHP + PDOでデータ登録
-
MySQLからのデータをページに1...
-
PHPにてSQLから取得したデータ...
-
検索結果にリンクを生成
-
プレースホルダを使った複数カ...
-
mysqlの置換について2
-
mysql 接続について
-
検索機能
-
mysql limitページ分割
-
MySQLでの順位付けについて
-
mysql データ更新
-
PDOでDB ページング
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
おすすめ情報