mysql
  • fetch
  • 2016-02-01 30 views -2 likes 
    -2

    我想獲取從我的MySQL 4行,每行添加在讀取行

    $rel=mysql_query("SELECT * FROM b_topics WHERE MATCH (subject) AGAINST('$title') LIMIT 4"); 
    if(mysql_num_rows($rel)<0) { 
        echo "" 
    } 
    else { 
        echo" <br><strong><div align='center'>Related Topics</div <br>"; 
        while($rel2=mysql_fetch_assoc($rel)) { 
        $gnum=mysql_num_rows($rel2); 
        if($gnum==1) { 
         echo" yes" 
        } 
        if($gnum==2) { 
         echo" no yes" 
        } 
        if($gnum==3) { 
         echo"yes yes" 
        } 
        if($gnum==4) { 
         echo" wmjayes"; 
        } 
        $reltitle=$rel2["subject"]; 
        $relid=$rel2["id"]; 
        echo" <a href='showtopic.php?id= $relid'>$reltitle>$gnum</a><br>"; 
        } 
    } 
    
    +1

    發佈代碼時,請粘貼所有原始空格/縮進,突出顯示並使用編輯器工具欄按鈕或「ctl-k」將其格式化爲代碼塊。 –

    +0

    你面臨的問題是什麼?這是你的要求。真的不是問題。 –

    +1

    請問一個新問題,而不是修改現有的問題。 – kojow7

    回答

    1

    由於mysql_fetch_assoc之後添加不同勢文字永遠只包含一列,計算行數將不會爲你工作之間。另外,mysql_num_rows會告訴你在查詢結果($ rel)中返回了多少行,它並不告訴你你在哪一行。

    而是考慮使用計數器變量:

    $rel=mysql_query("SELECT * FROM b_topics WHERE MATCH (subject) AGAINST('$title') LIMIT 4"); 
    if(mysql_num_rows($rel)<0) { 
        echo "" 
    } 
    else { 
        $counter = 0; 
        echo "<div style='text-align: center; font-weight: bold; margin: 10px'>Related Topics</div>"; 
        while($rel2=mysql_fetch_assoc($rel)) { 
        $counter++; 
    
        if($counter==1) 
         echo" yes"; 
    
        elseif($counter==2) 
         echo "no yes"; 
    
        elseif($counter==3) 
         echo "yes yes"; 
    
        elseif($counter==4) 
         echo" wmjayes"; 
    
        $reltitle=$rel2["subject"]; 
        $relid=$rel2["id"]; 
        echo" <a href='showtopic.php?id= $relid'>$reltitle>$counter</a><br>"; 
        } 
    } 
    

    此外,爲了使你的代碼更快一點考慮使用elseifelse if而不是多個if語句。您可能還想查看PHP switch聲明以獲取替代方案。

    此外,兩件事情你不應該做的事:

    1)不要使用MySQL的功能,既可以使用庫MySQLi或PDO的功能。 PHP中的mysql函數已被棄用,不應再使用。

    2)不要使用<br>來增加間距。此外,塊級元素(如div)不能出現在內聯元素中(如強)。對於這兩個使用CSS來代替。我已經修改了這個給你使用內聯CSS,但你最終應該把它放在一個外部CSS文件中。

    +0

    '^ 1'本來可以使用'switch($ counter){....}' –

    +0

    @AkshayHegde如果你閱讀我的答案,你會注意到我提到使用switch語句。我給了他一個接近他自己的代碼的答案,併爲他提供了他可以研究的替代方法。 – kojow7

    +0

    對不起,我沒有正確閱讀 –

    相關問題