こんにちは。
いつもお世話になっております。
20項目ほどある項目の検索画面を作りたくて
色々考えながら作業をしております。
------------------------------------------------
【試している事】
$td = "";
$td2 = "";
という変数を用意して、IF文の分岐によって
それぞれ
$td .= "<td>年</td>";
$td2 .= "<td>".$rows['year']."</td>\n";
という値を挿入していきたいのです。
echoで吐き出されている値の確認をしたのですが、
echo "$td\n";
は、ちゃんと吐き出されてくれるのですが、
while ($rows=mysql_fetch_array($res)) {
echo "<tr>\n";
echo "$td2\n";
echo "</tr>\n";
になると、吐き出されるのは<td></td>だけで
間の$rows['year']は全く無視されてしまいます。
書き方として間違っているのでしょうか・・?
どうかご指導よろしくお願いいたします。
No.7ベストアンサー
- 回答日時:
今気づいたのですが、$td2に値を入れてるのって、SQL文の実行より前じゃないですか?
こんにちは。
ご指導ありがとうございます。
ご指摘の通りでした。
$row=mysql_fetch_array($res)
の前に、$td2 に$row["year"]を入れていたために
何も無い とみなされていたみたいです。
$row=mysql_fetch_array($res)
の後に、もう一度IF文で$td2を書いたら
ちゃんと表示する事ができました。
ありがとうございました。
No.6
- 回答日時:
No3で回答した者です。
$td2の値が最初から<td></td>だったのだとしたら、最初から$rows['year']の値は空だという事ですよね?だとすると$td2の値は関係なくて、SQL文からの結果の取得自体がうまく行ってないという事でしょう。
同じSQL文をmysqlのコマンドクライアントから入力して意図した結果が出ますか?出ていれば、今やった方法と同じ要領でprint_rなどを使用して$resや$rowsの内容を表示させてみましょう。
No.5
- 回答日時:
プログラムが一部しか掲示してないので、正確に回答することは不可能です。
上のプログラムがすべての場合は表示されないのはあたりまえです。
$td = "";
$td2 = "";
while ($rows=mysql_fetch_array($res)) {
$td .= "<td>年</td>";
$td2 .= "<td>".$rows['year']."</td>\n";
}
echo "$td\n";
echo "$td2\n";
こうすれば意図どおりになると思います。
これでも駄目で、まだ回答がほしい場合はプログラムの全文を掲示してください。
この回答への補足
続きです。 長くなってすみません・・。
// 年度を期間で選択
if(($aaa_year != "") && ($aaa_year2 != "")){
$count +=1;
$select .= " nenndo.year >= ".$aaa_year." AND nenndo.year <= ".$aaa_year2." AND ";
$td .= "<td align=\"center\" rowspan=\"2\" nowrap width=\"80\">年度</td>";
$td2 = "<td align=\"center\">".$row["year"]."</td>\n";
}
$sql = "";
$sql .= "SELECT year,";
$sql .= "SUM(uriage),SUM(tanka),SUM(mouke)";
$sql .= " FROM syouhin,nenndo";
$sql .= " WHERE (".$select."syouhin.id = nenndo.id)";
$sql .= " GROUP BY year";
$res=mysql_query($sql,$con);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>テスト</title>
</head>
<body>
<?PHP
echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" bordercolor=\"#FFFFFF\" bgcolor=\"#COCOCO\">\n";
echo "<tr bgcolor=\"#FFFFFF\">\n";
echo "$td\n";
echo "<td colspan=\"3\" align=\"center\">1月</td>\n";
echo "</tr>\n";
echo "<tr bgcolor=\"#FFFFFF\">\n";
echo "<td align=\"center\" nowrap width=\"35\">売</td>\n";
echo "<td align=\"center\" nowrap width=\"35\" >個</td>\n";
echo "<td align=\"center\" nowrap width=\"35\">利</td>\n";
echo "</tr>\n";
echo "</tr>\n";
while ($row=mysql_fetch_array($res)) {
echo "<tr bgcolor=\"#FFFFFF\">\n";
echo ("$td2");//---------------------【問題点】
//echo "<td align=\"center\">".$row["year"]."</td>\n";//--【こちらは表示される】
echo "<td align=\"right\">".$row[1]."</td>\n";
echo "<td align=\"right\">".$row[2]."</td>\n";
echo "<td align=\"right\">".$row[3]."</td>\n";
echo "</tr>\n";
}
echo "</table>\n"
?>
</body>
</html>
こんにちは。
何度もすみません。
ご指導ありがとうございます。
お言葉に甘えて、ソースを貼り付けました。
よろしくお願いいたします。
<?PHP
//DBに接続
$con = mysql_connect("ホスト名","root","パスワード");
mysql_select_db("DB名");
//POSTで受け取った値を変数にセット
$aaa_year = $_POST["aaa_year"];
$aaa_year2 = $_POST["aaa_year2"];
//吐き出すSQL文のセット
//SQLのSELECT内容
$select = "";
//テーブル行セット
$td = "";
$td2 = "";
//年度のみ選択
if(($aaa_year != "") && ($aaa_year2 == "")){
$count +=1;
$select .= " nenndo.year = ".$aaa_year." AND ";
$td .= "<td align=\"center\" rowspan=\"2\" nowrap width=\"80\">年</td>";
$td2 = "<td align=\"center\">".$row["year"]."</td>\n";
}
文字数オーバーが出ましたので一旦分けます。
No.4
- 回答日時:
原因としては$td2の値が意図通りではないとしか考えられないと思います。
$td2の値が意図通りのものになっているか、流れを追って見ていかないといけないと思います。
・$td2に値を入れた直後
・echo "$td2\n";の直前または直後
・その他必要に応じて
の箇所にprint文で$td2の値を表示させて、どこまで意図通りの動作をしているのか、一つ一つ確かめるしかないのでは。
ご指導ありがとうございます。
echo "td2\n";
を、ご指導いただいた三箇所に記述してみた
のですが、いずれも、吐き出したのは
<td></td>のみでした・・・_| ̄|○
No.3
- 回答日時:
1: while ($rows=mysql_fetch_array($res)) {
2: echo "<tr>\n";
3: echo "$td2\n";
4: echo "</tr>\n";
5: }
このソースは抜粋だろうか?
3行目の前に
$td2 = $td2 .= "<td>".$rows['year']."</td>\n";
が要るんじゃないかなぁ・・・・。でないと、何回ループをまわしても現在行の$rows['year']の値は$td2に入らないよ。
ご指導ありがとうございます。
それが・・・。
echo "<tr>\n";
echo "$td2\n";
echo "</tr>\n";
で、吐き出されたHTMLをのソースも
見ているのですが、
<tr>
<td><td>
</tr>
と、テーブルの情報はちゃんと吐き出している
ようなのです。
$td2 = $td2 .= "<td>".$rows['year']."</td>\n";
を付け足してもみたのですが、$rows['year']は
空白になっていました・・・。
No.2
- 回答日時:
$rows['year']に値が入っていないというオチはないですよね?
というか、
while ($rows=mysql_fetch_array($res)) {
echo "<tr>\n";
echo "$td2\n";
echo "</tr>\n";
だったら
while ($rows=mysql_fetch_array($res)) {
echo "<tr>\n";
echo $rows[1] ."\n";
echo "</tr>\n";
とかにしなくてはいけないのでは?
一部しかないので正確にはわかりませんが。
No.1
- 回答日時:
$rows['year']に値が入っていないというオチはないですよね?
というか、
while ($rows=mysql_fetch_array($res)) {
echo "<tr>\n";
echo "$td2\n";
echo "</tr>\n";
だったら
while ($rows=mysql_fetch_array($res)) {
echo "<tr>\n";
echo $rows[1] ."\n";
echo "</tr>\n";
とかにしなくてはいけないのでは?
一部しかないので正確にはわかりませんが。
ご指導ありがとうございます。
echo "<td>".$rows[year]."</td>"\n";
にすると、ちゃんとSQLテーブルの値が返ってきます。
なので、値が入っていなかった、という落ちでは
無いのです……_| ̄|○
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- 工学 【制御工学】単位ステップ応答の遅れ時間の求め方(令和2年度の機械設計技術者試験(制御工学)の問題) 3 2022/11/02 10:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
findstrのerrorlevel
-
RSSにdiv,ul classを付けたいの...
-
バッチファイルで、全てのウィ...
-
コマンドプロンプト フォルダ内...
-
XMLのタグの有無をPHPで判定し...
-
syntax error, unexpected 'ech...
-
フォームから送った半角カナの...
-
DBのハッシュ化したパスワード...
-
php mysql SELECT文でテーブル...
-
変数の受け渡しによる画像の表示
-
連想配列からテーブルを作成す...
-
foreachで回った数を表示したい
-
PHPでのパスワード制限のセキュ...
-
radioボタンで絞り込む検索フォ...
-
オブジェクトの中身の判定(PHP)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
switch()文で値の大小比較
-
syntax error, unexpected 'ech...
-
findstrのerrorlevel
-
小数点以下0の非表示
-
Windowsのsetコマンドでの小数...
-
ゼロとNULLを区別して number_f...
-
DBのハッシュ化したパスワード...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
PHPで訪問回数を表示するカウン...
-
バッチファイルで、全てのウィ...
-
pdftkを使った処理をバッチファ...
-
PHP一覧表示した項目にリンクを...
-
PHPでのパスワード制限のセキュ...
-
RSSにdiv,ul classを付けたいの...
-
hiddenを使っているのに、表が...
おすすめ情報