我有一个搜索引擎,因为残奥会,我希望人们能够看到我放在我网站顶部的h1倒计时。下面是我的数据库的循环结果。我出错的任何想法?因为在此if
中,它根本不会回显h1
标记。我想高于我的结果。
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0) {
$query .= " OR ";
}
$query .= "keywords LIKE '%{$each}%'";
}
// Don't append the ORDER BY until after the loop
$query .= "ORDER BY rank";
$query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error($connect));
$numrows = mysql_num_rows($query);
if ($numrows > 0) {
while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$title = $row['title'];
$description = $row['description'];
$keywords = $row['keywords'];
$link = $row['link'];
$rank = $row['rank'];
echo '<h2><a class="ok" href="' . $link . '">' . $title . '</a></h2>' . PHP_EOL;
echo '<p maxlength="10" class="kk">' . $description . '</p>' . PHP_EOL;
echo '<p><a class="okay" href="' . $link . '">' . $link . '<br><br><span class="keywords"></p>' . PHP_EOL;
}
} else {
echo "No results found for \"<b>{$k}</b>\"";
}
if ($k = "Paralympics 2012") {
echo "<h1> Countdown to Paralympics: 7 Days </h1>";
}
答案 0 :(得分:0)
if ($k = "Paralympics 2012") {
echo "<h1> Countdown to Paralympics: 7 Days </h1>";
}
将始终打印<h1>
。你在做作业而不是比较。尝试:
if ($k == "Paralympics 2012")
另外,验证$ k是您在调试时所期望的。
答案 1 :(得分:0)
一个等于(=
)分配,两个/三个(==
/ ===
)比较。这条线
if ($k = "Paralympics 2012") {
将$k
分配给一个总是返回true的字符串,因为除了空字符串之外的任何字符串(""
)都是真实的。试试这个:
if ($k === "Paralympics 2012") {
答案 2 :(得分:0)
首先,<h1>
总是显示,与您的问题状态相反。它始终显示是因为您正在使用以下内容分配非假值:
if ($k = "Paralympics 2012") {
更新以使用比较来修复该逻辑问题。
if ($k == "Paralympics 2012") {
接下来,要使其显示在结果上方,您需要将if-statement
实际移到echo
结果的循环之上。尝试将其放在if ($numrows > 0) {
块中,如下所示:
if ($numrows > 0) {
if ($k == "Paralympics 2012") {
echo "<h1> Countdown to Paralympics: 7 Days </h1>";
}
while ($row = mysql_fetch_assoc($query)) {
...