![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっています。
やりたい事から説明します。
リストボックスで絞込みを2段階にしています。
その2段階目で、レコードがあればきちんと表示するのですが
無い場合に、一段階戻したいのです。
やってみた事。
前のページから、POST で 【genreno = $sgenreno】を送っています。
うまく表示するのですが、レコードが無いときにうまく表示できません。
*レコードが無いので、前のページに戻るリンクを表示したいのです
下は私なりに書いてみたのですが、if文にしない時はうまくいくのですが
if文にすると、レコードが無い場合にだけ変数が表示しません。
**変数以外の部分は表示するので、分岐は出来てると思うのですが
変な事をしているのだと思いますが、色々やってみてもうまくいきません。
宜しくアドバイスをお願いいたしますm(__)m
<?php
require_once("dbini.php");
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
$selectdb = mysql_select_db($DBNAME, $con);
//1ページ当りの表示件数を設定します
$PAGESIZE = 10;
if (!isset($page)) {
$sql = "select count(*) as cnt from テーブルA where genreno = $sgenreno";
$rst = mysql_query($sql, $con);
$col = mysql_fetch_array($rst);
$tcnt = $col["cnt"];
mysql_free_result($rst);
$page = 1;
}
$totalpage = ceil($tcnt / $PAGESIZE);
$pagehead = "$tcnt 件の登録があります。 " .
"[" . ($PAGESIZE * ($page - 1) + 1) . "-";
if ($page < $totalpage) {
$pagehead .= ($PAGESIZE * $page) . "] を表示しています</p>";
}
else {
$pagehead .= "$tcnt] を表示しています</p>";
}
//1ページ分だけ抽出するSQL文を組み立てます
$sql = "select * from テーブルA where genreno = $sgenreno order by id desc limit " .
$PAGESIZE * ($page - 1) . ", $PAGESIZE";
$rst = mysql_query($sql, $con);
//結果セットからデータを読み込みます
while($col = mysql_fetch_array($rst)) {
$genreno=$col["genreno"];
$genre=$col["genre"];
$sgenre=$col["sgenre"];
}
//△△△△△△△うまくいかないのはこの部分△△△△△△△
if($tcnt == 0 ){
$navi .= "<a href='1setubi_search.php?genreno=$genreno'>【".$genre."】"."</a>"."【".$sgenre."】は登録がありません。" ;
}
else{
$navi .= "今表示しているのは<a href='1setubi_search.php?genreno=$genreno'>【".$genre."】"."</a>"."【".$sgenre."】です。" ;
//↑この行はレコードがある場合は表示します
}
mysql_free_result($rst);
//△△△△△△△うまくいかないのはこの部分まで△△△△△△△
No.2ベストアンサー
- 回答日時:
前のページに戻りたいなら、
//△△△△△△△うまくいかないのはこの部分△△△△△△△
if($tcnt == 0 ){
// この表記でうまくいくかどうかは、試験環境がないので保証の限りではないですが。
$genre='javascript:history.back()';
$navi .= "<a href=【".$genre."】"."</a>"."【".$sgenre."】は登録がありません。" ;
}
で戻れそうな感じですが、$sgenreに何をセットすべきかは、この記事の情報では判断できません。$sgenreno をキーにして、テーブルAを検索し、その中のカラムsgenreから値を取り出しているわけですが、$sgenrenoに該当するレコードが1件もないのに、1件もない場合にどんな値が カラムsgenre から取り出されるべきかと問われているようなものです。それは第三者に分かるはずはないのです。
私が書くならこうします。
$navi .= "<a href=【".$genre."】"."</a>"."【".$sgenreno."】に該当する○○は登録がありません。" ;
再度アドバイス、ありがとうございました!
前回のアドバイスを元に、色々な方法を試して
データのあるなしに関わらず、ジャンルを表示するように
今朝方、作ったところでした。
ただ、前のページに戻るリンクを張りたかっただけなので
アドバイス通り以下のようにしました。
if($tcnt == 0 ){
// この表記でうまくいくかどうかは、試験環境がないので保証の限りではないですが。
$back='javascript:history.back()';
$navi .= "<a href=".$back.">"."登録がありません、前のページに戻ります。"."</a>" ;
}
このようにさせて頂きました。
色々な方法を考えてみる事が大事だと言うことを考えさせていただきました、
初心者の質問にお付き合い頂いて本当にありがとうございました。
No.1
- 回答日時:
while($col = mysql_fetch_array($rst)) {
$genreno=$col["genreno"];
$genre=$col["genre"];
$sgenre=$col["sgenre"];
}
のループは下記の条件で該当レコード0なら1度も通過しない。
select * from テーブルA where genreno = $sgenreno order by id desc limit
ゆえに、変数$genreも$sgenreも値を持たない変数になる。他に、これらの変数を初期化している箇所がないので、
$navi .= "<a href='1setubi_search.php?genreno=$genreno'>【".$genre."】"."</a>"."【".$sgenre."】は登録がありません。" ;
は多分、
【】【】は登録がありません。
と表示されて終わる~のではないかと。
この回答への補足
回答ありがとうございます。
ご指摘どおりです。
【】【】は登録がありませんと表示します。。。
アドバイスを頂いて、もう一度SQL文を発行すればよいのかと思いましたが、
while($col = mysql_fetch_array($rst)) {
こうしている限りだめなんですよね?
すみません、再度アドバイスをいただけませんか m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
子プロセス終了で閉じてしまうm...
-
PHP+mysqlでSQL文に文字数制限...
-
phpのエラーについてです
-
エンコードされたものを、$_GET...
-
Resource id #3 をフィールドの...
-
XAMMPが起動しません。
-
csvをDBへ読み込んだら、NULLが...
-
phpでmysqlを使ってデータベー...
-
実行時エラー3131 FROM 句の構...
-
Pro*Cの構文エラー
-
PHPで[]の使い方について
-
アポストロフィを含む文字列の追加
-
テキストボックスに入れた内容...
-
検索結果($_POST)が2ページ目...
-
insert1つの処理でもトランザ...
-
mysql_queryで日本語文字列が文...
-
VBAをつかってクエリの情報を抽...
-
【初歩】配列の格納データ数だ...
-
SQL文が実行できません
-
ToDoリストの「完了済」を非表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpのエラーについてです
-
テーブルに入っているデータと...
-
sqlから多次元配列に要素を格納...
-
PHPで絞り込み検索結果の件数を...
-
MySQLのデータを使ってプルダウ...
-
XAMMPが起動しません。
-
mysql_fetch_objectのエラー
-
mysql_resultのエラー
-
CSVをダウンロードさせた際、CS...
-
stringaddslashes 半角¥が消える
-
「mysqlclient」の事が分からな...
-
XAMPPで画面が真っ白になります。
-
会員登録したらメールが送られ...
-
PHP+mysqlでSQL文に文字数制限...
-
変数同士の引き算が出来ない
-
連想二次元配列のUNIXTIMEでの...
-
PHP/MySQL SQLエラーについて。
-
PHPでMySQLのレコードを削除したい
-
すいません。
-
インクルードによる不具合
おすすめ情報