来自MySQL的查询显示没有结果

问题描述:

我的数据库中有一列显示禁止的词。我想要做的是从我的数据库中回收坏词的列表,如果它们中的一些将被显示,则它们应该用以下代码替换它:-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://*.com/q/12859942/1190388)在新的代码。他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。改为了解准备好的语句,然后使用[tag:PDO]或[tag:MySQLi]。 – hjpotter92 2014-08-29 10:35:51

您获取数据后

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