0

I have a column in my database showing Banned words. What I'm trying to do is to recall the list of bad words from my database and if some of them are going to be displayed, they should replace it with :-x

I made $bwords to recall the info from the database and $pmsg to post the results if there was a bad word in it or not. The problem is after implementing this code my message isn't getting displayed at all. Where am I going wrong?

Here is the snippet

    // 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

and here is the full code:

<?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 ******/
?>
Nesquick
  • 1
  • 3
  • 3
    [Please, don't use `mysql_*` functions](http://stackoverflow.com/q/12859942/1190388) in new code. They are no longer maintained and are [officially deprecated](https://wiki.php.net/rfc/mysql_deprecation). Learn about prepared statements instead, and use [tag:PDO] or [tag:MySQLi]. – hjpotter92 Aug 29 '14 at 10:35

1 Answers1

1

You are fetching data later

while ($list = mysql_fetch_assoc($result)) {

while using it before when it doesn't even exist; neither the variable $list

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

--

Also, $bwords is a resource, not an array or object, here:

$bwords = mysql_query("SELECT word FROM StringyChat_WordBan");
younis
  • 357
  • 1
  • 7
  • Now I have an error saying `Parse error: syntax error, unexpected T_IF in /home/u506124311/public_html/ag/page.php on line 58` – Nesquick Aug 29 '14 at 12:40