我有一些代碼,我希望它只顯示列中存在特定字符串的行。我有一個名爲「標籤」的專欄,其中標籤的格式爲「tag1,tag2」等。我想要鏈接,以便人們只能顯示帶有特定標籤的產品。這是我遇到問題的地方。我無法讓它顯示具有特定標籤的行,它顯示了每一行。試圖顯示包含字符串的行時顯示的所有行
<?php
try {
//open the database
$db = new PDO('sqlite:prodDb.sqlite');
$tag = $_POST['tag'];
if (isset($tag)) {
$result = $db->query('SELECT * FROM Products WHERE instr(Tags, $tag) > 0');
} else {
$result = $db->query('SELECT * FROM Products ');
}
//now output the data to a simple html table...
$result = $db->query('SELECT * FROM Products');
foreach ($result as $row) {
print "" . $row['Id'] . "<br />";
print "" . $row['Name'] . "<br />";
$tags = explode(', ', $row['Tags']);
foreach ($tags as $tag) {
print "Tag: " . $tag . "<br />";
}
print "" . $row['Link'] . "<br />";
print "" . $row['Screenshot'] . "<br />";
print "" . $row['Download'] . "<br />";
}
// close the database connection
$db = NULL;
}
catch (PDOException $e) {
print 'Exception : ' . $e->getMessage();
}
?>
任何想法,我哪裏出錯了?
我看不出查詢如何工作。你需要在查詢中引用'$ tag'。但是最好使用預先準備好的查詢和'bindParam',而不是插入一個變量。 – Barmar 2014-10-12 06:50:57