Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql查询并查找值是否存在_Php_Mysql - Fatal编程技术网

Php Mysql查询并查找值是否存在

Php Mysql查询并查找值是否存在,php,mysql,Php,Mysql,我用这段代码来比较和发现两个CSV文件(每个文件有一列,每行有一个EAN代码)在两个方向上的差异: <?php mysql_connect('LOCALHOST', 'db', 'passwd') or die(mysql_error()); mysql_select_db("db") or die(mysql_error()); $update_table = "ps_product"; $file1 = file('1.csv'); $file2 = file('2.csv

我用这段代码来比较和发现两个CSV文件(每个文件有一列,每行有一个EAN代码)在两个方向上的差异:

<?php 
mysql_connect('LOCALHOST', 'db', 'passwd') or die(mysql_error()); 
mysql_select_db("db") or die(mysql_error()); 

$update_table = "ps_product"; 

$file1 = file('1.csv');
$file2 = file('2.csv');


$diff  =  array_diff($file1, $file2);
$diff2  = array_diff($file2, $file1);


$diffjoined = array_merge($diff, $diff2);

?>

我假设您的
$diffjoined
是代码中ean13的列表

您的SQL查询已关闭

$eans = "'".implode("','", $diffjoined)."'";
$q = "UPDATE $update_table SET quantity='0' WHERE ean13 IN ($eans)";
mysql_query($q);

你的问题是什么?请分享一个你的csv文件的例子。前两行应该很好。@hofan41我的问题是如何验证合并的数组中是否有相同的值(ean代码),对应于DB,找到后,将其更新为0数量。@AlanAsher 1.csv:000000000 1 000000000 2 000000000 3 000000000 4 000000000 7文件2.csv:000000000 1 000000000 3 000000000 5 000000000 4 000000000 7列,两个文件每行1个代码。好的,谢谢!但是它会在更新之前验证数据库中是否已经存在要更新的ean吗?MySQL只会更新匹配的行,所以如果您的数据库中有eans=1、3、5、6并且只有5和6,那么只有5和6会被更新。我不知道为什么,但没有更新。ean代码列表正确显示。有什么问题吗?
$eans = "'".implode("','", $diffjoined)."'";
$q = "UPDATE $update_table SET quantity='0' WHERE ean13 IN ($eans)";
mysql_query($q);