- 締切済み
複数のレコードの値を取り出すには
初心者です。あるカラムから複数のレコードの値を取り出すにはどのように書けばよいかどなたか教えていただけますでしょうか。 下記のコードではcalendartblというテーブルから1レコードのみ取り出せます。 テーブル:calendartbl holiday(カラム名) 2016/9/12(レコード1行目) 2016/9/14(レコード2行目) 2016/9/20(レコード3行目) 2016/9/26(レコード4行目) 2016/9/28(レコード5行目) コード: $sql = "SELECT calendartbl.holiday FROM calendartbl"; $ret = f_db_select($sql); foreach ($ret as $h){ $holiday = $h['holiday']; } 結果=2016/9/12 では複数のレコード、つまり「2016/9/12、2016/9/14、2016/9/20、2016/9/26、2016/9/28」を取り出して、上記の$holidayに代入させるにはどのように書けばよいでしょうか。 どなたか教えて頂けたら幸いです。 よろしくお願い致します。
- leoairen
- お礼率83% (5/6)
- PHP
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- muuming2001
- ベストアンサー率23% (202/845)
f_db_select てのが中身みえないので当てずっぽですが、 foreach ($ret as $h){ $holiday[] = $h['holiday']; } これで配列として取れると思うけど・・・・ ---------------------------------------- てか質問に記載しているプログラムは最終的に1つの値を取り出すために複数の値をsqlで取得したうえで、foreachでぐるぐる回して、全ての値を$holydayに代入している処理になっています。そのため最後に取れた値が$holydayに最終的には入っていますが、、なぜにこんなことしてるんでしょうか。。。何をやっているのか理解できてなくて偶然動いた的な感じが見受けられます。
関連するQ&A
- 同じカラム直下に複数のレコードをinsert
初心者です。 DBの同じカラム直下に複数のレコードをinsertさせるにはどうすればよいかどなたか教えて頂けますでしょうか。 以下は入力フォームで入力した複数の日付を確認画面で受け取ったものです。 <table> <th>休日年月日</th> <td>2016/9/12,2016/9/14,2016/9/20,2016/9/26,2016/9/28</td> </table> 日付が一つでしたらinsertは可能ですが、複数の場合はinsertできませんでした。 複数でinsertした場合のDBのイメージは以下の通りです。 holiday(カラム名) 2016/9/12(レコード1行目) 2016/9/14(レコード2行目) 2016/9/20(レコード3行目) 2016/9/26(レコード4行目) 2016/9/28(レコード5行目) どなたか教えて頂けたら幸いです。 よろしくお願い致します。
- 締切済み
- PHP
- 複数レコードのテーブルであるレコードだけ増やしたい
お世話になります。 複数レコードがあるテーブルにて、あるレコードだけカウントアップする為のSQL文はどのように記述すれば良いでしょうか? 要件: テーブル名'名簿'の No, 名前, 更新者, 備考に 01, 芥川龍之介, ほげ太, NULLを入力し 備考は書き込みさせるためとりあえずNULLを代入しておき 名前と更新者は同じで、Noの部分だけを01~10までカウントアップさせたい 何卒、ご教授のほど、宜しくお願いします。
- ベストアンサー
- PostgreSQL
- 複数行を1レコードにまとめたい
1つのテーブルでカラムAに個人を特定する情報、カラムBに個人情報の項目、カラムCにその値が設定されています。 カラムBは個人によって登録されている数が異なります。 カラムBから必要な項目を特定して個人を1レコードに集約して抽出したいと思っているのですが、どのようにSQLを作成すればよいでしょうか? 作成してみたSQLでは1レコードに1カラムずつしか値が入らないため、複数行となってしまうのでまとめたいという状況です。 データ カラムA, カラムB, カラムC ------------------------- KOJIN1, AAA, MOJI1 KOJIN1, BBB, MOJI2 KOJIN2, AAA, MOJI3 KOJIN3, BBB, MOJI4 KOJIN3, CCC, MOJI5 select カラムA, case when カラムB = AAA then カラムC end カラムAAA, case when カラムB = BBB then カラムC end カラムBBB from テーブル 結果 カラムA, カラムAAA, カラムBBB ----------------------------- KOJIN1, MOJI1, KOJIN1, , MOJI2 KOJIN2, MOJI3, KOJIN3, , MOJI4 ↑KOJIN1, MOJI1, MOJI2 のように出力したい 初歩的な質問かもしれませんが、よろしくお願いします。
- 締切済み
- Oracle
- SQL 1カラムに複数の値
SQLを使ってAccessにレコードを書き込みます。 Access側で「列車コード」というカラムに複数の値を持つ設定にしていますが、どんなコードを書けば良いですか。 INSERTを使うというところまでは理解しました。 列車コード 1 2 3 4,5 4,6 5 6 7,8 9 10 (他のカラムは省略) なんとなく作ってみたけどエラーになったコード "INSERT INTO 駅時刻リスト(列車コード) VALUES(1);"
- 締切済み
- その他(データベース)
- 同一レコードを複数取り出したい
以下のようなテーブルがあったとます。 <AA table> A B ------ 01 2 02 3 03 4 A = '01'のレコードを取り出す場合には、 select * from AA where A = '01'; A B ------ 01 2 で取れますが、このときBの値を判断して、以下のようにBの数だけ同一レコードを取り出したいと思います (where A = '01'ならば) A B ------ 01 2 01 2 (where A = '03'ならば) A B ------ 03 3 03 3 03 3 03 3 このように、同一レコードを条件によって複数取り出す処理をSQLで記述することはできるのでしょうか?
- ベストアンサー
- Oracle
- SQLiteで最も古いレコードのみの削除
AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます ・ID - primary key not null ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?
- ベストアンサー
- その他(データベース)
- access フォーム上で複数行のレコードを追加したい。
宜しくお願いします。 仕様環境:WinXP access2002 フォーム上にコマンドボタンで空白のレコードを 追加したいのですが、一行だけなら「値の代入」マクロで 追加できるのですが、複数行だとやり方がわかりません。 「追加クエリ」を作ってコマンドボタンにマクロで乗せてみたのですが、 テーブル上では複数の空白レコードが追加されてますが、 フォーム上には反映してくれません。 「値の代入」マクロを使って、複数行のレコードをフォーム上に追加するか、 「追加クエリ」を使って、複数行のレコードをフォーム上に反映させるか したいのですが教えてください。 ※ ちなみにこのフォームはサブフォームです。 また5行追加しようとしています。 この方法では無理でしたらご指導お願いします。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- COUNT(*)の使い方
COUNT(*)の使い方が分からないので質問します。 直接のSQLでCOUNT(*)を使ってレコード数を表示させることはできましたが PHPでのSQLではCOUNT(*)をPHPのソースの変数に代入する方法が分かりません。 $sql = 'SELECT ip, COUNT(*) FROM webdb'; $ret = mysql_query($sql); $rowval = mysql_fetch_row($ret); この場合、$rowval[1] がテーブルwebdbのレコード数だと 思いましたが、間違っているところはございませんか?
- ベストアンサー
- MySQL
- DBIを使ってSelect文 複数のカラム、複数のレコードを取得するには?
Perl DBIを使用してDB検索する部分で質問させてください。 検索してきた複数のレコードの中のカラムを全て取得したいのですが うまくできません。 テーブルAAAに フィールドa,b,cがあり、レコードが3つ入っているとします。 テーブルAAA a b c ------ 1 2 3 4 5 6 7 7 7 $sqlState= "select a,b,c from AAA"; $sth= $dbh->prepare($sqlState); $sth->execute; @row = $sth->fetchrow_array; foreach (@row){ ($a,$b,$c,)= @row; print $a; print $b; print $c; } このようなコードでいいのかと思うのですが 出力結果は111 222 333 となってしまってまるで期待通りの結果にはなりませんでした。 上記の例では 123 456 777 という出力結果を望むとすると、どのように記述すればよろしいのでしょうか?
- 締切済み
- Perl
- あるカラムに同じ値を持つレコードの2件目以降を削除
あるカラムに同じ値を持つレコードの2件目以降を削除するSQLを教えて下さい。 例) テーブル名:T キーカラム名:K 同じ値を持つかチェックするカラム名:S SELECT K,S FROM T; K S ---- 1 a 2 b 3 b 4 c 5 d 6 e 7 e 上記の場合、K=2または3と、K=6または7の2レコードを削除したい。
- ベストアンサー
- Oracle
お礼
ご回答、ありがとうございます。
補足
$holidayに入った複数の日付がカレンダーにある日付と一致したときにある処理を実行したいですが、行き詰まっています。 「if (date("Y-m-d", mktime(0, 0, 0, $m, $d, $y)) == $holiday){ 処理 }」