人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

$rs = mysql_query( ”SELECT DISTINCT codeid, city FROM hoge WHERE todofu = ’$kensaku’ , $conn );
echo ”<table border=1>”;
echo ”<tr><th>コード</th><th>市町村</th></tr>”;
while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){
echo ”<tr>”;
echo ”<td>” . $rec[’codeid’] . ”</td>”;
echo ”<td>” . $rec[’city’] . ”</td>”;
echo ”</tr>”;
}

質問が長過ぎて登録出来なかったので、省略しております。
今はこのようになっていて、
$rec[’codeid’]と$rec[’city’]が数百件、表示されるのですが、
その結果の$rec[’codeid’]を1件ずつ$kensakuに入れて、表示させるには、どうすればいいのでしょうか?

$rs2 = mysql_query( ”SELECT * FROM hoge WHERE code = $rec[’codeid’] , $conn );みたいに使って、
こんどは、今表示されている結果の下に、この結果も表示したいです。
意味が分からない所は聞いて下さい。宜しくお願いします。

●質問者: haring
●カテゴリ:ウェブ制作
✍キーワード:ECHO hoge REC SELECT コード
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● birdie-brain
●50ポイント

質問の内容が、1個のテーブルのデータを、同じ`codeid`および`city`を持つデータごとに集約して全てのデータを表示したい、ということであれば、

1.`codeid`順にソートして全てのデータを取得する(SQLのORDER BY節)

2.ループの`codeid`の変わり目で表示内容を分岐する

という処理で対応可能です。


$rs = mysql_query( ”SELECT * FROM hoge WHERE todofu = ’$kensaku’ORDER BY codeid”, $conn );

echo ”<table border=1>”;

echo ”<tr><th>コード</th><th>市町村</th><th>その他</th></tr>”;

$codeid = ”dummy”;

while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){

echo ”<tr>”;

if ($codeid != $rec[’codeid’]) {

echo ”<td>” . $rec[’codeid’] . ”</td>”;

echo ”<td>” . $rec[’city’] . ”</td>”;

echo ”<td></td>”;

}

else {

echo ”<td></td>”;

echo ”<td></td>”;

echo ”<td>” . $rec[’other’] . ”</td>”;

}

echo ”</tr>”;

$codeid = $rec[’codeid’];

}


質問にあるように、ループの内側でSQLを何度も実行してしまうと、パフォーマンスが極端に低下するのでお勧めできません。


質問内容を外してたらすいません。

◎質問者からの返答

良く読むと自分でも分かりにくい質問内容になってました。すいません。

もう少し、問題を把握してきます。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ