関連する本を買い込みましたが、全然情報がないのでご助言下さい!
複数テーブルから文字列を抽出してIDを振るような入力フォームを作っています。
具体的には以下のような形を考えているのですが、どのように記述をしてよいのかさっぱりです・・・。
table1:
+-----+-------------+------+------+--
| ID0 | ID1 | col1 | col2 |
+-----+-------------+------+------+--
| 1 | KW0807-0001 | A | 3323 |
| 2 | KX0807-0002 | B | 1122 |
| 3 | KY0807-0003 | C | 4441 |
| 4 | KW0807-0004 | A | 1256 |
+-------------------+------+------+--
table2:
+-----+------+------+--
| ID2 | col3 | col4 |
+-----+------+------+--
| 1 | A | W |
| 2 | B | X |
| 3 | C | Y |
| 4 | D | Z |
+-----+------+------+--
・ID0 は AUTO INCREMENT
・ID1 -> [K(規定値)] + [col1で入力する値よりcol4を抽出] + 入力した年 (08) + 入力した月 (07) + 0001 から始まる4桁の連番
・col1, col2の入力と同時に、ID1 を自動で生成、入力 (table2は既存です)
ひとまずこんな感じかな・・・と書いてみましたが、全然ダメです。
ID1の入力値は「KResource id #30807-」となってしまいました。
$y = date("y",time());
$m = date("m",time());
$renban = mysql_query("
select col4 from table1 INNER JOIN table2 //LEFT JOINでも可?
ON col1.table1 = col3.table2
where '$col1' = col3
");
$ID1 = "K$renban$y$m-0000";
$sql = "insert into table1 values('$ID1', '$col1' '$col2');
※4桁の連番もどうしてよいか分からないので、ひとまず「0000」としました。
何が足りないのか誤ってるのか・・・ご教授いただければ幸いです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
「入力」という用語を、どういう意味で使っているのでしょうか?
table1のcol1の値から、table2のcol3と対応付けcol4を求め、さらにid1を生成するなら、table1に予め行をinsertしておき、その後、updateすることになります。この場合、同一表に対してselectし、updateするには1SQLで行うにはMySQLの仕様上の制限を受けるかも知れません。
それとも、table1に格納する値を変数に持ち、table2を検索後に格納するのでしょうか?
id1を生成するSQL例を、以下に示します。これをinsert~selectすれば、期待した値をtable1に格納できると思います。
set @num=0;
set @col1='A';
select
null,
concat('K',
col4,
date_format(current_date,'%y'),
date_format(current_date,'%m'),
'-',
lpad(cast(@num:=@num+1 as char(4)),4,'0')),
@col1,
3323
from table2
where col3=@col1
この回答への補足
ご回答ありがとうございます!
どうも説明が悪いようで申し訳ありません。
col1とcol2を入力 (insert) するのと同時にID1を生成し、入力 (insert) と考えておりましたが、一度 col1, col2 に insert してからその後 table2 を参照しつつ update ということになるのでしょうかね、やはり。
このようにも↓書いてみましたが・・・やっぱりダメでした。
いけそうな気もしたのですが・・・。
$y = date("y",time());
$m = date("m",time());
$sql = "select col4 from table1 INNER JOIN table2
ON col1.table1 = col3.table2
where '$col1' = col3";
//↑この時点ではまだ col1 の値がないからダメってことですかね?
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
$renban = $row["col4"];
$ID1 = "K$renban$y$m-0000";
$sql = "insert into table1 values(0, '$ID1', '$col1' '$col2');
}
ちなみに、下4桁の連番は、月が変わった時点でリセット(1に戻る)ようにしたいのですが、そういったことも可能なのでしょうか?
例:
KW0807-0235 (7月31日)
KW0808-0001 (8月1日)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript java keyを配列で表記したい 10 2022/12/01 17:53
- その他(コンピューター・テクノロジー) Pythonの np.indicesに関する質問です。 2 2023/02/07 08:19
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル名が可変の場合のクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLでカラムを追加し、条件に合...
-
SQLについて教えて下さい。 SEL...
-
SQLです。こんな感じですか?あ...
-
書籍の内容はまともでしょうか?
-
①①②③③ではなくて、①①③②③の流れ...
-
mysql>status で
-
php テーブルを作れない
-
エラー 1068 (42000): 複数の主...
-
BGMを教えてほしいです!
-
「重複を間引いた数」をcountし...
-
データベースの接続に失敗して...
-
SQLです!!教えてください。
-
私の考えていることは ・mySQL ...
-
select *, `人口(男)`AND`人口(...
-
下記の問合せを行うクエリを、P...
-
日本の全市区町村を人口密度が...
-
PhpMyAdminで作成して実行せよ...
-
addcslashesの使い方について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VIEWに対してWHERE句をつける
-
空白文字を含む文字列データの検索
-
コマンドプロンプト 複数の実...
-
JOIN使ってないのに、JOIN操作...
-
Mysql 同一テーブルの複数「別...
-
count()の結果を別の計算で使う...
-
MySQL + PHP での自動採番
-
Null値が入れられない
-
NULLを含む列の足し算
-
MySQLの特定のカラムの内容を全...
-
nullと同じく空白をCountしない...
-
SQL任意に並び替えをしたい
-
SQLでLIMIT句を入れるとエラー...
-
SQL文を入力したらエラー
-
テーブル作成時に、「`id` int(...
-
MySQLで関連したデータを横に並...
-
後でemailに追加でPRIMARY KEY...
-
sqlの中で、 例えば条件句で AN...
-
MySQLで項目の反復定義(COBOL...
-
3つのテーブルから、データが...
おすすめ情報