- ベストアンサー
Whileループ時の改行について
- Whileループを使用してランキングを表示する際、ランキングと表のヘッダの間に間が開いてしまう問題が発生しています。
- ループ回数が少ない場合はその間の隙間も少ないことから、ループの記述の仕方が原因の可能性があります。
- DBへの接続はHTMLタグの前に記述されています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 インデントしている全ての <TD> の前に全角の空白が入っています。とりあえずこの全角空白を削除すればお望みの表示になるハズですよ。 ↓↓↓ 以下の行です。 <TD COLSPAN="4">出走回数</TD> <TD本賞金</TD> <TD>収得賞金</TD> <TD>TOTAL</TD> <TD>1期</TD> <TD>2期</TD> <TD>3期</TD> <TD><h3><?php HESC($recsp['SUM_GP'] ) ?></h3></TD> <TD><h3><?php HESC($recsp['Race_Date_Count'] ) ?>回</h3></TD> <TD><h3>回</h3></TD> <TD><h3>回</h3></TD> <TD><h3>0回</h3></TD> # IE6では確認できました。
その他の回答 (3)
- wakame0729
- ベストアンサー率32% (245/765)
どちらにせよこのソースですと何が悪いのかの判断が付かないので、ループ部分だけ抜き出すとかして欲しいですね。また、どの位置にスペースが入るのかを知りたいので、出力されたHTMLのその部分も見せて下さい。 それとHESC関数って僕は知らないんですが、これは何ですか?echoの間違い?
お礼
HESCというのはユーザー定義関数です。 いきなりこんなもん載せて理解してもらえるわけないですよね。 こちらの質問に色々不備がありすみませんでした。 どうもありがとうございました。
- wakame0729
- ベストアンサー率32% (245/765)
ソースの転載も途切れ途切れっぽいので判断が付かないのですが、No1さんの指摘以外にも結構HTML的に間違ってる部分がたくさんあるみたいですよ。頭の所は抜粋ですか?<body>タグがない、<h1>の最初の>がない、<font>タグの始まりがない・・・単なる転載漏れかとは思いますが・・・。<h1>を<font>タグで囲う、<td>を<b>で囲うというのは正しいHTMLではないですね。ちょっと言い出すとキリがない位HTMLが変ですよ。 ブラウザ上で「ランキング」と表の間に空白が開くとしたら、それは改行じゃないと思います。単に改行が入ったとしてもブラウザ上では無視されますから。スクリプトを実行したら「ソースで表示」させ、狙い通りのHTMLが出力されているか確認しましょう。恐らく変なHTMLになってると思いますよ。
補足
ありがとうございます。 突っ込みどころ満載ということですね。 投稿時に800文字の文字制限に収めるため、 必要ないと思われるフォントの色指定などデザイン部分を削ったら必要なタグの開始部分までけずってしまいました。 ソースを見ても<BR>タグはないので改行ではないことは 気づいていたのですが、隙間の部分の正体は 大量の半角スペースのようです。 もう少しループの少ないファイルだと その隙間も大分少ないので ループ処理の記述の仕方に問題があるのではないかと思い、こちらに投稿した次第です。
- poppo64
- ベストアンサー率57% (11/19)
PHPは詳しくありませんが、おそらくHTMLの問題でしょう。 <TD>3期</TD> のあとに TR を閉じる </TR>タグ がないのが原因ではないでしょうか。
補足
ありがとうございます。 ご指摘の部分を修正してみましたが、ダメでした。
お礼
確かにご指摘の通りでした。 #2さんにも指摘されていますが 質問者としての配慮が大分欠けていたようです。 大変助かりました どうもありがとうございました。