2012-08-10 71 views
0

我正在使用Php將值插入到MySQL表中。需要MYSQL查詢在不同的列中插入值?

我想要做的是: 有三列,我必須檢查。 'namel1','namel2'和'namel3'。

條件:

  • 如果「$名」簡化版,存在於所有「namel1」三列然後把價值。
  • 如果'namel1'中存在'$ name',則將值放入'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')"); 
} 

我無法從網絡的任何解決方案。 請幫忙。謝謝。

+0

你的意思是把價值在一個名字namel3存在namel2列? – Fluffeh 2012-08-10 11:57:00

+0

ohh對不起,它的名字l3 - 固定。謝謝 – 2012-08-10 12:15:01

回答

6

在網上找到它並不容易,因爲這是一種你不應該陷入困境的情況。

你應該考慮規範化表格。

cvapp: id | img_path | namel1 | namel2 | namel3 

考慮將其更改爲兩個表:

​​

爲了然後選擇每一個名字,你只要做一個查詢,像這樣:

而是具有與該列的表

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"); 
+0

但是當我想要選擇一個圖像並希望得到它不同的名字時會發生什麼,這是怎麼可能的。 – 2012-08-10 12:13:19

+0

@AashuAbhee:我在答案中給了你這個例子。 :) – 2012-08-10 12:31:04

+0

你可以發表一個答案沒有加入,因爲還有其他的事情,我也沒有解釋。這對我的腳本有很大的改變。所以請你可以再給出一個答案,而不必在這裏只使用一張表.http://stackoverflow.com/q/11901798/1076003 – 2012-08-10 12:37:06

0

你可以嘗試自連接和搜索你的表