MySQLからPHPでデータを抽出し、重複データをまとめつつ、別のカラ
MySQLからPHPでデータを抽出し、重複データをまとめつつ、別のカラムを件数カウント表示し、さらに別のページへリンクしてデータを移動・表示したいです。
いつも利用させていただており、参考にさせていただいております。
さて、40の手習いということで、今更ながらPHPとMySQLを使ってwebページの構築なぞ始めて1週間になります。
そこで、かなり手詰まってしまって、思い切って質問をさせていただきました。
まずは、私の開発環境ですが
・PHP Version 5.2.11
・MySQL (5.0)
そこでやりたいことです。
TABLE `clinic`
ID,name,erea,chiiki,genre,tel
1,A店,新宿区,歌舞伎町,歯科医院,03-1234-5678
2,B店,新宿区,歌舞伎町,内科,03-1111-2222
3,C店,新宿区,歌舞伎町,内科,03-3333-4444
4,D店,新宿区,大久保,歯科医院,03-5555-6666
5,E店,新宿区,落合,歯科医院,03-7777-8888
5,F店,港区,赤坂,歯科医院,03-9876-5432
・
・
・
上記のようなデータがDBに格納されており
index.htmlより
■<a href="index.php?val=shin">新宿区</a>
歌舞伎町/大久保/落合
■<a href="index.php?val=minato">港区</a>
六本木/新橋/赤坂/西麻布/その他
このようなリンクから新宿区をクリックすると
index.phpにて
<新宿区の診療内容別一覧>
----------------------------
■歌舞伎町
└<a href="index.php?val=???">内科</a>(2)//この数字は件数です
└歯科医院(1)
■大久保
└歯科医院(1)
■落合
└歯科医院(1)
のように表示し、さらに例えば内科をクリックすると
result.phpにて
B店
└03-1111-2222
C店
└03-3333-4444
と表示したいのです。
index.phpで、
$url = "localhost";
$user = "clinic";
$pass = "admin";
$db = "clinic";
// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");
// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");
if($_GET['val'] == 'shin'){$erea = "新宿区";}
if($_GET['val'] == 'minato'){$erea = "港区";}
if($erea !== '') { $erea_sql = 'EREA LIKE '."'%".$erea."%'";
} else {
$tempHtml = "エリア選択が不正です";
}
$sql = " SELECT * FROM `clinic` WHERE {$erea_sql} ";
$result = mysql_query( $sql );
//結果セットの行数を取得する
$rows = mysql_num_rows($result);
//表示するデータを作成
if($rows){
while($row = mysql_fetch_array($result)) {
ここが全く想像すらつきません・・・(汗)
}
}else{
$tempHtml = "データがありません";
}
//結果保持用メモリを開放する
mysql_free_result($result);
// MySQLへの接続を閉じる
mysql_close($link) or die("MySQL切断に失敗しました。");
データの総数は、東京都内のみで1000件程度あります。
ここから先へ進むには、どこを勉強すれば良いのかすら浮かばず
非常に困っております。
ヒントでも、このページを見ろ!でも結構ですので、
何卒ご教授のほど、よろしくお願い致します。
補足
$sql = "SELECT c4 "; $sql .= "FROM p_test "; $sql .= "order by c4 "; $no =array(); $result = mysql_query($sql,$db) or die("失敗しました".mysql_error ()); $i =0; while($row = mysql_fetch_array($result,MYSQL_ASSOC)){ if($no[$i]==$row['c4']){ print $i.",".$row['c4']."<br>"; } $i++; $no[$i] = trim($row['c4']); } こんな感じで出来ました。 アドバイス有難うございました。