朋友们,我需要跳过 foreach 中的重复的条目,而继续的其他条目请告诉我们我怎么能这样做
foreach($arr as $key=>$arr1)
{
echo "<pre>";
$insert=mysql_query("INSERT INTO auth_user(id,username,first_name,last_name,email,password,is_active,date_joined) VALUES('".$key."','".$arr1['username']."','".$arr1['firstname']."','".$arr1['lastname']."','".$arr1['email']."','NULL','".$arr1['is_active']."','".$arr1['date_joined']."')",$conn1);
echo $insert .'<br/>';
if($insert)
{
echo "DATA MIGRATE FOR USER ".$key;
$insert1=mysql_query("INSERT INTO stylequiz_score(user_id,style_quiz_score,style_quiz_answer) VALUES('".$key."','".$arr1['style_quiz_score']."','".$arr1['style_quiz_answer']."')",$conn1);
}
else
{
echo ("Error In MIGRATION FOR USER ".$key . mysql_error());
}
}
答案 0 :(得分:2)
使用INSERT语句的IGNORE修饰符:
$insert1=mysql_query("INSERT IGNORE INTO stylequiz_score(user_id,style_quiz_score,style_quiz_answer) VALUES('".$key."','".$arr1['style_quiz_score']."','".$arr1['style_quiz_answer']."')",$conn1);
如果插入的行会出现重复键错误,则此修饰符会导致跳过插入而没有错误。
答案 1 :(得分:1)
array_unique将删除数组中的所有重复值。在你的情况下,试试这样。
$arr = array_unique($arr);
您无需执行任何额外功能。
答案 2 :(得分:0)
假设您在$arr
使用array_unique
$res_array = array_unique($arr);
参考:http://php.net/manual/en/function.array-unique.php
要检查数据库中的重复项,请将插入查询置于if condition
中$sql = mysql_query("SELECT * FROM auth_user WHERE email = '".$arr1['email']."'");
if(mysql_numrows($sql) == 0){
$insert=mysql_query("INSERT INTO auth_user(id,username,first_name,last_name,email,password,is_active,date_joined) VALUES('".$key."','".$arr1['username']."','".$arr1['firstname']."','".$arr1['lastname']."','".$arr1['email']."','NULL','".$arr1['is_active']."','".$arr1['date_joined']."')",$conn1);
}
else{
$insert = false;
}