2014-08-29 74 views
0

我的數據庫中有一列顯示禁止的詞。我想要做的是從我的數據庫中回收壞詞的列表,如果它們中的一些將被顯示,則它們應該用以下代碼替換它:-x來自MySQL的查詢顯示沒有結果

我使$bwords回憶起來自數據庫和$pmsg發佈的結果,如果有壞詞或不。問題是執行此代碼後,我的消息沒有得到顯示。我哪裏錯了?

以下是摘錄

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage; 

// get the info from the db 
$sql = "SELECT StringyChat_time, StringyChat_name, StringyChat_message FROM StringyChat LIMIT $offset, $rowsperpage"; 
$bwords = "SELECT word FROM StringyChat_WordBan"; 
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); 
$test = mysql_query($bwords, $conn) or trigger_error("SQL", E_USER_ERROR); 

$pmsg = ($list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']; 

// while there are rows to be fetched... 
while ($list = mysql_fetch_assoc($result, $test)) 
//while (($pmsg = $list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']) 
{ 
    // echo data 
    //echo ($pmsg = ($list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']) 

    echo '<span style="color:#828282">' . '(' . date('D H:i:s', $list['StringyChat_time']) . ') ' . '</span>' . '<b>' . if($list['StringyChat_message'] == $test) ? ":-x" : $list['StringyChat_message'] . '</b>' . ' : ' . $pmsg . '<br />' 
} 

// end while 

,這裏是完整的代碼:

<?php 

// database connection info 
$conn = mysql_connect('...','...','...') or trigger_error("SQL", E_USER_ERROR); 
$db = mysql_select_db('...',$conn) or trigger_error("SQL", E_USER_ERROR); 

// find out how many rows are in the table 
$sql = "SELECT COUNT(*) FROM StringyChat"; 
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); 
$r = mysql_fetch_row($result); 
$numrows = $r[0]; 

// number of rows to show per page 
$rowsperpage = 5; 
// find out total pages 
$totalpages = ceil($numrows/$rowsperpage); 

// get the current page or set a default 
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { 
    // cast var as int 
    $currentpage = (int) $_GET['currentpage']; 
} else { 
    // default page num 
    $currentpage = 1; 
} // end if 

// if current page is greater than total pages... 
if ($currentpage > $totalpages) { 
    // set current page to last page 
    $currentpage = $totalpages; 
} // end if 
// if current page is less than first page... 
if ($currentpage < 1) { 
    // set current page to first page 
    $currentpage = 1; 
} // end if 

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage; 

// get the info from the db 
$sql = "SELECT StringyChat_time, StringyChat_name, StringyChat_message FROM StringyChat LIMIT $offset, $rowsperpage"; 
$bwords = "SELECT word FROM StringyChat_WordBan"; 
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); 
$test = mysql_query($bwords, $conn) or trigger_error("SQL", E_USER_ERROR); 

$pmsg = ($list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']; 


// while there are rows to be fetched... 
while ($list = mysql_fetch_assoc($result, $test)) 
//while (($pmsg = $list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']) 
{ 
    // echo data 
    //echo ($pmsg = ($list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']) 

    echo '<span style="color:#828282">' . '(' . date('D H:i:s', $list['StringyChat_time']) . ') ' . '</span>' . '<b>' . if($list['StringyChat_message'] == $test) ? ":-x" : $list['StringyChat_message'] . '</b>' . ' : ' . $pmsg . '<br />'; 
} 

// end while 

/****** build the pagination links ******/ 
// range of num links to show 
$range = 3; 

// if not on page 1, don't show back links 
if ($currentpage > 1) { 
    // show << link to go back to page 1 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> "; 
    // get previous page num 
    $prevpage = $currentpage - 1; 
    // show < link to go back to 1 page 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> "; 
} // end if 

// loop to show links to range of pages around current page 
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { 
    // if it's a valid page number... 
    if (($x > 0) && ($x <= $totalpages)) { 
     // if we're on current page... 
     if ($x == $currentpage) { 
     // 'highlight' it but don't make a link 
     echo " [<b>$x</b>] "; 
     // if not current page... 
     } else { 
     // make it a link 
     echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> "; 
     } // end else 
    } // end if 
} // end for 

// if not on last page, show forward and last page links   
if ($currentpage != $totalpages) { 
    // get next page 
    $nextpage = $currentpage + 1; 
    // echo forward link for next page 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> "; 
    // echo forward link for lastpage 
    echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> "; 
} // end if 
/****** end build pagination links ******/ 
?> 
+3

[請不要使用'mysql_ * '功能](http://stackoverflow.com/q/12859942/1190388)在新的代碼。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。改爲了解準備好的語句,然後使用[tag:PDO]或[tag:MySQLi]。 – hjpotter92 2014-08-29 10:35:51

回答

1

您獲取數據後

while ($list = mysql_fetch_assoc($result)) { 
,而使用它

當它不前即使存在;無論是變量$列表

$pmsg = ($list['StringyChat_message'] == $bwords) ? ":-x" : $list['StringyChat_message']; 

-

此外,$ bwords是一種資源,而不是一個數組或對象,在這裏:

$bwords = mysql_query("SELECT word FROM StringyChat_WordBan"); 
+0

現在我有一個錯誤,說'解析錯誤:語法錯誤,意想不到的T_IF在/home/u506124311/public_html/ag/page.php 58行 – Nesquick 2014-08-29 12:40:38