【发布时间】:2013-12-21 06:39:57
【问题描述】:
我正在尝试创建搜索,无论如何我的网站是:
mysite.com/?p=search&t=[SEARCH VARIABLE]
因此,就我而言,如果我的 url 是我希望它搜索我的帖子表并给我在表中存在 [SEARCH VARIABLE] 的结果。主要是我希望它检查这些列:标题、内容和作者。如果那里有任何[搜索变量],我希望它显示出来。
尝试 [只有 1 列] 有效,但没有给出所有结果。
<?php
if (isset($_GET['t']))
{
$stmt = $dbh->prepare('SELECT * FROM posts WHERE `title` like :t');
echo ' <h1>Search results for: '.$_GET['t'].'</h1> ';
if (!$stmt->execute(array(':t' => $_GET['t'])))
{
exit('Could not exec query with param: '.$_GET['t']);
}
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo '<font size="4pt">'.$row["title"].'</font><br>';
}
}
?>
我的尝试与第一个相同,但检查内容字段。也不行。
<?php
if (isset($_GET['t']))
{
$stmt = $dbh->prepare('SELECT * FROM posts WHERE `title` like :t AND `content` like :t;');
echo ' <h1>Search results for: '.$_GET['t'].'</h1> ';
if (!$stmt->execute(array(':t' => $_GET['t'])))
{
exit('Could not exec query with param: '.$_GET['t']);
}
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo '<font size="4pt">'.$row["title"].'</font><br>
}
}
?>
对于第一个,它只显示一个带有标题的字段。但我希望它显示任何带有单词的东西。例如,如果您搜索“hey”并有“hey theres apples”,我希望它显示 hey theres apples。
编辑:
<?php
if (isset($_GET['t']))
{
$stmt = $dbh->prepare('SELECT * FROM posts WHERE `title` like %:t%');
echo ' <h1>Search results for: '.$_GET['t'].'</h1> ';
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo '<font size="4pt">'.$row["title"].'</font><br>';
}
}
?>
仍然需要帮助。
【问题讨论】: