2011-07-15 53 views
0

我正在使用foreach循環插入查詢。與此同時,如果數據庫中存在數據庫,那麼我的匹配值就是匹配值。如果存在的值比我想要跳過該特定鍵並且移動到下一個要插入的鍵值。如果datavase中不存在值,它再次檢查值是否存在,而不是保存記錄。插入查詢使用foreach循環的問題

我用下面的方法來做到這一點。

foreach($inputs as $key => $value) { 
if ($key == 'empty') continue; 
    $check=mysql_query("select * from from t_atc_list where s_title='$key' and r_name='$value'"); 

    if(mysql_num_rows($check)!=0){ continue;  } 
    $result = mysql_query("INSERT into t_atc_list(a_name, s_title, r_name) values('$album','$key', '$value')")or die(mysql_error()); 
    echo "<strong>$key</strong> Singer <strong>$value</strong></br>"; 

} 

注: (1)。如果已存在重複條目的值,則插入值。 (2)。我得到警告「mysql_num_rows():提供的參數不是有效的MySQL結果資源...」

+0

如果你從來沒有相同的標題+名的組合(不只是在這段代碼),可考慮將其爲唯一索引;那麼你可以只做'INSERT IGNORE'或'INSERT ... ON DUPLICATE KEY UPDATE a_name =?',你完全刪除第一個查詢。此外,強制性[博比表警告](http://bobby-tables.com/)。 – Amadan

回答

4

在第一個查詢中有兩次「from」這個詞,這會導致您的查詢語法無效並返回(布爾)而不是MySQL資源。所以mysql_num_rows($ check)會拋出一個錯誤,並且if語句總是計算爲false。

變化:

select * from from t_atc_list 

要:

select * from t_atc_list 
+0

謝謝....我的錯誤.. – Aditii