0
我有一個'假'表,一些新聞報道存儲在'標題'下,他們各自的日期存儲在'日期'下。mysqli while循環需要一點幫助
每x分鐘,我會獲取一個新標題。我想比較它在過去3小時內已存儲在數據庫中的每個項目(使用similar_text()函數)。
如果新項目與DB中已存在的項目相似,則將新標題與數據庫中已存在的項目合併並更新現有項目。如果不是,則在數據庫中插入新標題作爲新項目。
我的代碼的問題是,它更新所有的項目,而不是隻有相似的項目,即使新項目與任何舊項目不相似,它都無法添加到數據庫中。
這裏的表結構:
ID Titlu Data
1 Cum să decojești simultan mai multe 2015-09-21 20:17:09
2 David Cameron, rataciri cu marijuana, 2015-09-21 20:17:09
3 Dalai Lama vrea sa vina in Europa 2015-09-21 20:17:09
4 Judecătorul lui Oprescu cere DNA 2015-09-21 20:17:09
而且我的代碼:
$nou = 'Dalai Lama vrea sa vina in Europa';
$delim = '///';
$last3hours = "SELECT * FROM Bogus WHERE Data >= now() - INTERVAL 3 HOUR ORDER BY Data DESC";
$result3hours = mysqli_query($mysqli, $last3hours) or Die (mysqli_error());
if ($result3hours)
{
while($row = mysqli_fetch_assoc($result3hours))
{
similar_text($nou, $row['Titlu'], $percent);
if ($percent >= 40)
{
$titlu_update = $row['Titlu'] . $delim . $nou;
//Update
$update_item = "UPDATE Bogus SET Titlu = '$titlu_update'";
if (!mysqli_query($mysqli, $update_item))
{
die('Eroare (update_item): ' . mysqli_error($mysqli));
}
$already_in_db = true;
}
}
if (!$already_in_db)
{
$insert_new_item = "INSERT INTO Bogus (Titlu) VALUES ('$nou')";
if (!mysqli_query($mysqli, $insert_new_item))
{
die('Eroare (Single_Item_Update): ' . mysqli_error($mysqli));
}
}
}
// Free result set
mysqli_free_result($result3hours);
//Close connection
mysqli_close($mysqli);
期望的結果應該是:
ID Titlu
1 Cum să decojești simultan mai multe
2 David Cameron, rataciri cu marijuana,
3 Dalai Lama vrea sa vina in Europa///Dalai Lama vrea sa vina in Europa
4 Judecătorul lui Oprescu cere DNA
相反,我得到:
ID Titlu
1 Dalai Lama vrea sa vina in Europa///Dalai Lama vrea sa vina in Europa
2 Dalai Lama vrea sa vina in Europa///Dalai Lama vrea sa vina in Europa
3 Dalai Lama vrea sa vina in Europa///Dalai Lama vrea sa vina in Europa
4 Dalai Lama vrea sa vina in Europa///Dalai Lama vrea sa vina in Europa
我在做什麼錯了?
非常感謝,Bas,它做到了!現在我可以繼續我的項目:) –
不客氣! –