- ベストアンサー
検索結果と件数について
いつもお世話になっております。 PHP経験者の方にとっては、どうしようもない質問だと思いますがどうかよろしくお願いします。 現在HTML、PHP、MYSQLを使って検索のWebアプリを作成しております。 検索結果を表示して検索件数も表示することはできたのですが、結果と件数の表示位置をそれぞれ別々に指定するにはPHP側でどのように分け、HTML側でどのように書けばいいのか調べても全く分かりませんでした。 本当に何か簡単なサンプルでもありましたら教えていただきたいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です、ちなみにこんな感じ $pdo = new PDO($dsn,$user,$password); $sql = "select * from test where 1"; $res1 = $pdo->query( $sql); $res2 = $pdo->query('SELECT FOUND_ROWS()'); $res3 = $pdo->query($sql." ORDER BY id LIMIT 5"); $sql = "select count(*) as count from test where 1"; $res4 = $pdo->query( $sql); print $res1->rowCount()."<br>"; //行数をひろう場合 print $res2->fetchColumn()."<br>"; //直前のSELECTで拾った行数をひろう場合 print $res3->rowCount()."<br>"; //LIMITで減った行数をひろう場合 print $res4->fetch(PDO::FETCH_ASSOC)["count"]; //きちんとCOUNT()する場合
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
件数は件数で、結果は結果で、それぞれ1回ずつ計2回検索をかければよいのでは? やり方は2つ 一つはSQL文をつくるにあたってページング用のORDER BYとLIMITを除いたSQLを走らせ $res = $pdo->query('SELECT FOUND_ROWS()'); $count= $res->fetchColumn(); として件数を得る その後ORDER BY とLIMITをつけて再度SQLを走らせれば結果を得られます もう一つはまじめにSELECT COUNT(*) できちんと件数を拾って それとは別に結果を得るためのSQLを走らせます。
お礼
2つとも試してみようと思います。 ありがとうございます。
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
検索結果用の変数と検索結果件数の変数を別々にして それぞれをechoしてあげればいいと思うんだけど、どこがよくわからんの?
お礼
[php] echo "取得件数".mysql_num_rows($rows)."<br>"; if($rows > 0){ $out = ""; while ($row = mysql_fetch_array($rows)){ $out .= $row['add']."<i>"; $out .= $row['id']."<i>"; $out .= "<r>"; } echo $out; } このようになっているのですが、どういう感じで別々にして [html] <script type="text/javascript"> function show(out){ var body = ""; var res = out.split("<r>"); body += '<table width="1000" border="1">'; body += "<tr><th>add</th><th>id</th>"; for(var i = 0; i <res.length -1; i++){ body+= "<tr>"; var flds = res[i].split("<i>"); for(var j = 0; j <flds.length -1; j++){ if(j != 2){ body += "<td>" + flds[j] + "</td>"; }else{ if(flds[1]!=""){ } } } } $("#show").html(body); } </script><div id="show"></div> htmlで表示すればいいのか分かりません 他で聞いたらjavascriptをbrで区切り結果と件数をtable要素に分けdivで括ればいいと教えていただいましたが、どこで区切ってどう分け、どう括ればいいのか全く理解できませんでした。
お礼
詳しく親切に書いていただきありがとうございます。 回答の方を参考にさせていただいて、また書いてみようと思います。