0

PHPを使用してMySQLテーブルに値を挿入しています。

私がやろうとしていることは次のとおりです。私がチェックしなければならない3つの列があります。'namel1'、'namel2'および'namel3'。

条件:

  • '$ name'が3つの列のいずれにも存在しない場合は、'namel1'に値を入力します。
  • 「$name」が「namel1」に存在する場合は「namel2」に値を入れ、「namel2」に値が含まれている場合は「namel3」に入れます。

名前と画像パスを挿入するための現在のMySQLクエリは、上記の条件を満たすように変更したいものです。

$chk_img_db = mysql_query("select * from cvapptable where img_path='$cvh_myimg_url'");
if(mysql_num_rows($chk_img_db)<1) {
mysql_query("insert into cvapptable(namel1,img_path) values ('$name','$cvh_myimg_url')");
}

Webから解決策を取得できません。助けてください。ありがとうございました。

4

2 に答える 2

6

ネットで見つけるのは簡単ではありません。なぜなら、それはあなたが自分自身に入るべきではない状況だからです。

テーブルの正規化を検討する必要があります。

列を持つテーブルを持つ代わりに:

cvapp: id | img_path | namel1 | namel2 | namel3

2つのテーブルに変更することを検討してください。

cvapp: id | img_path
names: id | cvapp_id   | name

次に、すべての名前を選択するには、次のようなクエリを実行します。

SELECT name
  FROM cvapp INNER JOIN names on cvapp.id = names.cvapp_id
 WHERE <condition>

そうすれば、好きなだけ名前を付けることができ、新しい名前を挿入するのがはるかに簡単になります。

INSERT INTO names (cvapp_id, name) VALUES (56, "Name 1");
INSERT INTO names (cvapp_id, name) VALUES (56, "Name 2");
INSERT INTO names (cvapp_id, name) VALUES (56, "Name 3");
于 2012-08-10T11:57:56.883 に答える
0

自己結合を試して、テーブルの列を検索できます

于 2012-08-10T12:01:02.237 に答える