我做了以下腳本來檢查一篇文章是否存在於另一個表中,如果它應該回顯文章存在,如果它沒有,則添加文章ID和文章名稱到另一個表格。我遇到的問題是,如果我清除workshoptabs表並運行更新腳本,它將創建所有文章ID /名稱,但是如果我將新文章添加到dbel6_content表中,然後再次運行更新腳本,它不會添加新的文章到車間標籤。另外,如果我從workshoptabs刪除一條記錄並運行該腳本,它不會重新添加它,但是如果我清除整個表格,那麼它會重新導入所有內容。Php腳本沒有按預期導入新記錄
$resultB = mysql_query("SELECT * FROM dbel6_content WHERE catid='12'") or die(mysql_error());
while($rowB = mysql_fetch_array($resultB)) {
$articleid = $rowB['id'];
$articlename = $rowB['title'];
$resultA = mysql_query("SELECT * FROM workshoptabs WHERE articleid='$articleid'") or die(mysql_error());
while($rowA = mysql_fetch_array($resultA)) {
$articleexists = $rowA['articleid'];
echo $articleexists.' Exists';
}
if (empty($articleexists)){
mysql_query("INSERT INTO workshoptabs (articleid, articlename) VALUES ('$articleid', '$articlename')") or die(mysql_error());
echo 'Added Articles : '.$articleid.'-';
}
}
如果我運行該腳本,我得到: 16 Exists17 Exists20 Exists24 Exists25 Exists26 Exists27 Exists34已存在
如果我擦workshoptabs表,並重新導入的一切,我得到: 新增文章:16新增文章: 17添加文章18添加文章19添加文章20添加文章21添加文章22添加文章23添加文章24添加文章25添加文章26添加文章: 27-Added Articles:34-
但是,如果我現在刪除第21條並運行該腳本再次沒有添加它。
可能需要在檢查每個條目之前清空$ article存在。看起來在找到它的第一個現有記錄後,它將永遠不會變空。 – showdev
如何清空它? –
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –