2012-08-22 74 views
0

我有一個搜索引擎,並且因爲殘奧會,我希望人們能夠看到我放在我的網站頂部的h1倒計時。下面將是我的數據庫的循環結果。任何想法,我出錯了?因爲在此if中,它根本不會回顯h1標記。我想高於我的結果。添加一個if echo語句到我的搜索引擎

$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>"; 
} 
+2

它可能無法幫助回答你的問題,但你應該停止使用'mysql_ *'功能。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀本文](http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/)。 – Matt

+1

和$ k永遠不會初始化,至少不會顯示在代碼中 – codeling

回答

0
if ($k = "Paralympics 2012") { 
    echo "<h1> Countdown to Paralympics: 7 Days </h1>"; 
} 

它將總是打印<h1>。你在做任務而不是比較。嘗試:

if ($k == "Paralympics 2012") 

此外,驗證$ k是您期望它在調試時。

0

一等於(=分配,和兩/三(==/===比較。行

if ($k = "Paralympics 2012") { 

分配$k爲一個字符串,它總是返回true,因爲比一個空("")以外的任何字符串是truthy。試試這個:第一

if ($k === "Paralympics 2012") { 
0

第一件事,該<h1>總是顯示中,你有什麼問題的狀態相反。它總是顯示由於事實,你正在做的與非假值的分配:

if ($k = "Paralympics 2012") { 

更新,要使用比較來解決這一邏輯問題。

if ($k == "Paralympics 2012") { 

接下來,爲了得到它,以顯示你上面的結果,實際上你需要移動的是if-statement的循環,echo S中的結果之上。嘗試將其放置在if ($numrows > 0) {塊,像這樣:

if ($numrows > 0) { 
    if ($k == "Paralympics 2012") { 
     echo "<h1> Countdown to Paralympics: 7 Days </h1>"; 
    } 
    while ($row = mysql_fetch_assoc($query)) { 
     ...