MySQLで下記のようににテーブルを作成しました。
+----+------+------+-------+
| id | name | age | add |
+----+-------+-----+-------+
| 01 | 名前1 | 20 | 住所1 |
| 02 | 名前2 | 20 | 住所2 |
| 03 | 名前3 | 35 | 住所3 |
| 04 | 名前4 | 21 | 住所4 |
| 05 | 名前5 | 21 | 住所5 |
| 06 | 名前6 | 20 | 住所6 |
+----+-------+-----+-------+
これをPHPで接続し、年齢別で整理したいのですが、
どのようにしたらいいのかわかりません。
現在は下記のように記述し、SQLのデータを配列に入れ、
その配列を分解して年齢別に分ける・・・といったやり方を行っていますが、
これだとMySQLの意味がないような気がします。
もっと簡単に年齢別でわけることは可能でしょうか。
$rs = mysql_query("select * from test order by age" , $conn);
$i = 0;
while($rec = mysql_fetch_array($rs)){
$cate_only[] = "$rec[age]";//年齢のみの配列を作成
$arr_cate_only = array_unique($cate_only);//年齢のみの配列から同じものを削除
$arr_cate_only = array_values($arr_cate_only);//年齢のみの配列を再度作成
$count_cate = count($arr_cate_only);//年齢が何個あるかカウント
・
・
・
}
具体的には下記のような感じでページを表示したいです。
年齢別で表示しています。
年齢「20」
┣名前1
┣名前2
┗名前6
年齢「21」
┣名前4
┗名前5
年齢「35」
┗名前3
No.1ベストアンサー
- 回答日時:
while($rec = mysql_fetch_array($rs)){
$data[$rec["age"]][]=$rec["id"];
}
って処理をいれてみては?
No.2
- 回答日時:
group by で with rollup 指定すると、より編集しやすい形で検索できるかも知れません。
以下、SQL例です。どんな検索結果が得られるか、実際に見てみてください。なお、この小細工(合計の行が返却される順序を変える)は、データ件数が多いとオーバーヘッドになるので、性能重視なら現状の考え方通り、PHP側でやった方がいいです。
-- 返却順を小細工。
-- `age`の値がnullの行(総合計)を、一番最後に返却させる
-- `name`の値がnullの行(年齢毎の合計)を、各年齢の先頭に返却させる
select
*
from
(
select `age`,`name`,count(*) as cnt
from `test`
group by `age`,`name`
with rollup
) as x
order by `age` is null -- 総合計を最終行にする。
,`age`
,`name` is not null -- 各年齢別の合計は、各年齢の先頭行にする
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- 消費者問題・詐欺 ネットニュースに個人情報 注意することは 3 2023/05/26 05:57
- 友達・仲間 ネッ友が30代だった…。 高校2年女子です。 インスタのDMするまで女性だと勘違いしてたのですが、男 4 2022/09/07 20:07
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
foreachのなかで次のキーを参照...
-
ファイルの逆読みってできますか?
-
配列を回すとき、最後の要素だ...
-
$_SESSIONに二次元配列を使える...
-
漢字のソートについて
-
String だと「 ByRef引数の型が...
-
smarty 同じ要素内で改行
-
SESSION変数の2次元配列
-
PHPでgrepする件について
-
配列をループでたくさん宣言し...
-
ネストが深い時のforeachはどう...
-
タブ区切りのデータでnullのデ...
-
PHP 配列の添字に変数は使えない?
-
配列をほかの配列の値で複数の...
-
複数配列で重複する文字列を削...
-
PHP 多次元配列変数のデータ受...
-
PHPで配列をPOSTデータで送った...
-
チェックボックス複数選択 mys...
-
マッチング処理(1:N)
-
特定の文からメールアドレスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
SQL文の実行結果を変数で受けて...
-
【PHP】配列内のある値以上をカ...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
CSVデータのn番目だけの値を取...
-
PHP 配列の数をn対nの割合で分...
おすすめ情報