2012-08-10 34 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

你可以尝试自连接和搜索你的表