こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

DBから行を取得したフィールド名を意図的に変えたいのです。

こんばんは。
いつもお世話になっておりますm(__)m
またはまってしまったみたいで、どうにもわからなく
なってしまいました。
どうかご指導よろしくお願いいたします。

使用環境はPHP5+Apche+MySQL4.0です。

PHPより、フォーム画面で、【入力】→【確認画面】→【登録完了報告画面】まで、意図した動きが出るように
なったので、【一覧リスト】というページを作って
mysq_fetch_array関数で、行をループで呼び出しました。
ここまでは出来たのですが、フィールドに入っている
値が1のときは”販売中” 2の時は”販売終了”と
入力したいのです。

以下、試してみたコードです。


//SQL発行
$rs = mysql_query("select * from uriage", $conn);

//1件ずつ取り出すループ
while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC)){
echo "<tr>";
echo "<td>".$rec['oder_no']."</td>";
echo "<td>".$rec['syouhin']."</td>";
echo "<td>".$rec['siiresaki']."</td>";
echo "<td>".$rec['tanka']."</td>";
echo "<td>"
$a = .$rec['situation'].;
if($a == 1){
echo "販売中";
}else{
if($a == 2){
echo "販売終了";
}
echo "</td>";
echo "</tr>";


私なりに調べてみたのですが、_fetch_array関数で
最後の行にきたらFALSEになるとの事で、
途中にIFで分岐させたのが悪いのかな、とは
思ったのですが・・・・。
どうすれば、回避できるのかもわからなくて・・。

どうか、ご指導よろしくお願いいたします。

投稿日時 - 2005-02-22 02:25:58

QNo.1231144

困ってます

質問者が選んだベストアンサー

またまたよく見たら「echo "</td>";」の前の"}"が足りない。

ついでに値が"1"と"2"しかないんなら
if($a == 1){
echo "販売中";
}else{
echo "販売終了";
}
でいいと思いますが。

投稿日時 - 2005-02-22 03:46:33

お礼

masa_peeさま。

あっ。 そっか。そうですよね。
値が二つなら($a == 2)は書かなくっても
良かったのですよね。
ありがとうございます。

もぅ、初心者まるだしの馬鹿な質問の羅列で
お恥ずかしいかぎりです。

あれから、さらに手を加えて、受けとった値で
違うテーブルから、番号に会うフィールド値を
表示させる事にも、成功いたしました♪
多謝です!

最後まで、親切にご指導して頂きまして、
本当にありがとうございました。

投稿日時 - 2005-02-22 04:34:27

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

"{"の閉じ忘れ?ソースの一部しか見てないのでよくわかりませんが。

投稿日時 - 2005-02-22 03:38:34

お礼

masa_peeさま。

ご推察の通りでした。
すみません。
}が一個抜けていました_| ̄|○

本当に、ありがとうございました。

投稿日時 - 2005-02-22 03:56:28

よく見たら「$a = .$rec['situation'].;」の前の行に「;(セミコロン)」がないです。

投稿日時 - 2005-02-22 03:13:54

お礼

masa_peeさま。

ぎゃー!
ほんとですね。セミコロン、忘れていました。
なんで半日も悩みまくって気がつかなかったのでしょう_| ̄|○
お恥ずかしいです。
さっそく、セミコロンを付けて再度表示画面を
見てみたのですが、エラーのラインがずれて
エラーがでてきました・・・・。


エラー内容
Parse error: parse error in C:\Apache\Apache2\htdocs\kokyaku_sample\all_uriage_list.php on line 72


この、ライン72は、下記コードの一番最後の行、
</html>にあたるのです。

//<table>フッタ
echo "</table>";

//結果セットの開放
mysql_free_result( $rs );

//切断
mysql_close($conn);

?>

</body>
</html>

なぜなのでしょうか・・・・_| ̄|○

何度もすみません。
よろしくお願いいたします。

投稿日時 - 2005-02-22 03:27:02

ということはif文の前で止まってるんですね。

とりあえずwhile文の中を
echo $rec['situation'];
だけで回したときにどうなります?ちゃんと1とか2が表示されますか?

投稿日時 - 2005-02-22 03:10:23

お礼

masa_pee様。

はい。ちゃんと、1か2が表示されております。

投稿日時 - 2005-02-22 03:22:44

> $a = .$rec['situation'].;
「.(ドット)」はいらないんじゃないですか。

エラーが表示されてるなら、どこで出てるか、どんなエラーが出たか書いてもらった方が解決早いです。

投稿日時 - 2005-02-22 02:46:47

お礼

masa_peeさま。
ご指導ありがとうございます。

.(ドット)を付けないでも試してみたのですが、
付けている時と同様のエラーが出てしまうのです。

エラー内容
Parse error: parse error, expecting `','' or `';'' in C:\Apache\Apache
\htdocs\kokyaku_sample\all_uriage_list.php on line 47

line47が、ちょうど$a = .$rec['situation'].;に
あたる部分で、situationを’から”に変えて囲って
みたり、ドットをはずしてみたりしたのですが、
上記のエラーは同じままでした・・・。

どうか、ご指導よろしくお願いいたします。

投稿日時 - 2005-02-22 02:59:47

あなたにオススメの質問