早上好,
我需要将数据库的所有行与数组进行比较,例如:
D B
VALUE 1 - VALUE 2 - VALUE 3
1 2 3
我尝试什么(PHP)
$hostname = 'localhost';
$username = 'root';
$password = '';
$database = 'namedb';
$db = new MySQLi($hostname, $username, $password, $database);
$sql=$db->query("SELECT * from numbers");
$all =array('1' => '6',
'2' =>'32',
'3' => '50'
);
while($res=$sql->fetch_array()){
$value1=$res['value1'];
$value2=$res['value2'];
$value3=$res['value3'];
$arraydb=array('1' => $value1,
'2' =>$value2,
'3' => $value3,
);
}
if ($all != $arraydb){
print_r($all);
}else{
echo 'exist in db';
}
我从 DB 中取出所有值并放入数组中,然后将其与 1 个静态数组进行比较。问题是,如果我把代码放在while中比较数据库中的值,它总是会写信给我,直到找到一个相同的。相反,我希望通过比较所有的值,如果甚至只有一个写我“存在于数据库中”,而不是如果比较它们发现什么都没有写给我数字
编辑:@Luuk(如果比较它们发现什么都没有给我写数字,不清楚你指的是哪个数字)我需要将所有 DB 行与单个数组进行比较
@Dilek 我不能使用WHERE id IN (1,2,3,4),因为我在 DB(value1-value2-value3) 中有 3 个标签,例如 1 - 2 - 3 并且我的数组有 (3-2-1) 所以如果我比较两个数组不匹配. 如果值不匹配,我需要比较所有行 db 仅打印一次单个数组,否则“存在于 db 中”
@Slepic(如果您不想打印数字,请删除 print_r 行。无论如何,您的代码有更大的问题......)只有当所有数据库与单个数组不匹配时,我才需要打印该值(代码不会上传在线所以不用担心数据库安全)
@mitkosoft$arraydb包含数据库中的值,例如我的示例:
$arraydb=array('1' => '1',
'2' => '2',
'3' => '3',
);