PHPを使った検索フォームから入力された値を使ってMySQLでデータベースからデータを取ってくるということをしたいのですが、少し複雑なところがあり、また未熟者でもあるのでお力を貸していただければと思い質問させていただきます。
データベース(以下DB)のテーブルが5つあり、テーブルの名前がA、B-1、B-2、B-3、B-4とします。
AのDBの一つのカラムにtable_typeとして1,2,3,4の数字が入り、1がB-1、2がB-2、3がB-3、4がB-4に対応しています。
また別のカラムにtitle_idとしてBのいずれかのテーブルの中のidが入っています。
Bのテーブルにはカラムとしてint型のidとtext型のタイトルがあります。
例えば
Aのtable_typeが2でtitle_idが23のとき、B-2のidが23のところに対応しています。そこからタイトルを知ることができます。
今回やりたいことはまず入力された値を4つのBのテーブルのタイトルの中から部分一致で当てはまる箇所を探してきてそこからAのtable_typeとtitle_idを取ってくるという動作をしたいです。
入力された値が「ああ」の場合
もしB-2のidが3の箇所のタイトルのところに「ああいいうう」というデータが入っていたならテーブルAのtable_typeが2でtitle_idが3である部分の行を取り出したいとします。
MySQL
1create table A (id int, table_type tiny_int(4), title_id int); 2create table B-1 (id int, title varchar(10)); 3create table B-2 (id int, title varchar(10)); 4create table B-3 (id int, title varchar(10)); 5create table B-4 (id int, title varchar(10)); 6 7INSERT INTO A(id,table_type,title_id)VALUES(1,1,3); 8INSERT INTO A(id,table_type,title_id)VALUES(2,4,4); 9INSERT INTO A(id,table_type,title_id)VALUES(3,2,3); 10INSERT INTO A(id,table_type,title_id)VALUES(4,3,1); 11 12INSERT INTO B-1(id,table_type,title_id)VALUES(1,'ttt'); 13INSERT INTO B-1(id,table_type,title_id)VALUES(2,'aaa'); 14INSERT INTO B-1(id,table_type,title_id)VALUES(3,'yyy'); 15 16INSERT INTO B-2(id,table_type,title_id)VALUES(1,'あかさたな'); 17INSERT INTO B-2(id,table_type,title_id)VALUES(2,'あいうえお'); 18INSERT INTO B-2(id,table_type,title_id)VALUES(3,'ああいいうう'); 19 20INSERT INTO B-3(id,table_type,title_id)VALUES(1,'111'); 21INSERT INTO B-3(id,table_type,title_id)VALUES(2,'222'); 22INSERT INTO B-3(id,table_type,title_id)VALUES(3,'333'); 23 24INSERT INTO B-4(id,table_type,title_id)VALUES(1,'ppp'); 25INSERT INTO B-4(id,table_type,title_id)VALUES(2,'qqq'); 26INSERT INTO B-4(id,table_type,title_id)VALUES(3,'rrr'); 27 28
またテーブルAに入っているデータがテーブルBに入っていないということはありません。
この場合どのようにすればよいでしょうか?
また至らぬところがありましたらご指摘お願いします。
回答4件
あなたの回答
tips
プレビュー