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

解決済みの質問

ラジオボタンで表示された内容を整列させたい

PHPとMYSQL初心者です。どうも難しくて暗礁に乗り上げております。
どなたか助けて下さい。

次のコードは、フォームを使って「エリア」を指定して、
指定された都道府県を表示するようにしたいのですが、
表示はできるのですが、それを3列に整列して表示をさせることが
できません。
茨城 群馬 千葉 埼玉 東京 神奈川
と次々に表示されてしまうものを
茨城 群馬 千葉
埼玉 東京 神奈川
というように3県毎に改行をしたいのですが、
方法がわかりません。どなたかご指導お願いいたします。



<form method='POST' action='search_city.php'>
<?php
// MYSQLへ接続
$con = MYSQL_CONNECT("******","******","******");
mysql_select_db("jp00001");
// クエリの実行
$area_id = htmlspecialchars($_POST["area_id"]);
$res = mysql_query("SELECT area.area_id, area.area_name, pref.pref_id, pref.pref_name FROM area INNER JOIN pref ON area.area_id = pref.area_id WHERE area.area_id='$area_id'");

// クエリのチェック
if (!$res) {
die('クエリーが失敗しました。'.mysql_error());
}

// クエリの文字の表示
while ($row = mysql_fetch_assoc($res)) {
?>
<label><font size="-1">
<input type="radio" name="pref_id" value="<?php echo $row['pref_id'] ?>">
<?php echo $row['pref_name'] ?></font></label>
<?
}
?>
<tr>
<td height='21' align="center" bgcolor='#DDFFFF'>
<input type='submit' value='市区エリアへ'>

投稿日時 - 2007-05-13 02:10:42

QNo.2995485

すぐに回答ほしいです

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

↓3行ごとに改行させる。
$i=0;
while ($row = mysql_fetch_assoc($res)) { ←この行の下に
if ( $i >= 3 ){
echo "<br>";
$i=1;
}else{
$i++;
}

でも、これだと揃わないので応用してテーブルを組む
echo "<table><tr>";
$i=0;
// クエリの文字の表示
while ($row = mysql_fetch_assoc($res)) {
if ( $i >= 3 ){
echo "</tr><tr>";
$i=1;
}else{
$i++;
}
?>
<td><label><font size="-1">
<input type="radio" name="pref_id" value="<?php echo $row['pref_id'] ?>">
<?php echo $row['pref_name'] ?></font></label></td>
<?
}

で、いかがですか?

投稿日時 - 2007-05-13 09:44:17

お礼

calltellaさん。本当に貴重な時間をありがとうございました。
ただ今、確認しまして、無事に思っているようにできました。
テーブルを組んで体裁を整えて、イメージ通りになりました。
感謝致します。

投稿日時 - 2007-05-13 12:38:58

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

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

回答(2)

ANo.2

県の数をカウントする変数(初期値=0)を設けて、
・1県分をechoするごとにインクリメントする
・カウントが3で割り切れたら echo "<br />"; する
という作戦はいかがでしょうか。

投稿日時 - 2007-05-13 09:45:03

お礼

asuncionさん。ありがとうございます。
無事に解決致しました。

投稿日時 - 2007-05-13 12:42:29

あなたにオススメの質問