This is a discussion on filter bad words,list recent 10 within the PHP Language forums, part of the PHP Programming Forums category; Okay, my snippet goes hand in hand it is supposed to not show bad words that were searched for and ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Okay, my snippet goes hand in hand it is supposed to not show bad
words that were searched for and it is supposed to show the 10 most recent searches. Here's my problem, it is only showing the 10th row as far as recent searches and the filtering of bad words doesn't work. $query=@mysql_query("SELECT search,recent FROM search ORDER BY recent ASC LIMIT 0,10 "); while($row = mysql_fetch_array( $query )) { $badWords = array('stupid', 'Jerk'); $numBadWords = count($badWords); for($i="0";$i<$numBadWords;$i++){ if(stripos($ss_mess,$badWords[$i]) != FALSE){ } } $recent=($row['search']); } echo $recent; I should note that search is both a field and the name of the table (i know not the best design) and the field "recent" is timestamp type. |
|
|||
|
On 1 Nov, 10:32, joanna <m...@barrelofcrafts.com> wrote:
> Okay, my snippet goes hand in hand it is supposed to not show bad > words that were searched for and it is supposed to show the 10 most > recent searches. Here's my problem, it is only showing the 10th row as > far as recent searches and the filtering of bad words doesn't work. > > $query=@mysql_query("SELECT search,recent FROM search > ORDER BY recent ASC LIMIT 0,10 "); > > while($row = mysql_fetch_array( $query )) > { > > $badWords = array('stupid', 'Jerk'); > $numBadWords = count($badWords); > > for($i="0";$i<$numBadWords;$i++){ > if(stripos($ss_mess,$badWords[$i]) != FALSE){ > > } > > } > > $recent=($row['search']); > > } > > echo $recent; > > I should note that search is both a field and the name of the table (i > know not the best design) and the field "recent" is timestamp type. Your snippet uses a variable called $ss_mess which never seems to be set. But then the if statement containing it has no code to do anything either. So all in all, I wouldn't expect this to do anything. |
|
|||
|
On 1 Nov, 10:32, joanna <m...@barrelofcrafts.com> wrote:
> Okay, my snippet goes hand in hand it is supposed to not show bad > words that were searched for and it is supposed to show the 10 most > recent searches. Here's my problem, it is only showing the 10th row as > far as recent searches and the filtering of bad words doesn't work. > > $query=@mysql_query("SELECT search,recent FROM search > ORDER BY recent ASC LIMIT 0,10 "); > > while($row = mysql_fetch_array( $query )) > { > > $badWords = array('stupid', 'Jerk'); > $numBadWords = count($badWords); > > for($i="0";$i<$numBadWords;$i++){ > if(stripos($ss_mess,$badWords[$i]) != FALSE){ > > } > > } > > $recent=($row['search']); > > } > > echo $recent; > > I should note that search is both a field and the name of the table (i > know not the best design) and the field "recent" is timestamp type. You're doing it wrong - trying to exclude a dataset in PHP from a dataset held in the database by moving them both to PHP. Try with them both in the database: SELECT search,recent FROM search OUTER JOIN badwords ON (search.search=badwords.word) WHERE badwords.word IS NULL ORDER BY recent ASC LIMIT 0,10 C. |
|
|||
|
On Nov 1, 12:18 pm, "C. (http://symcbean.blogspot.com/)"
<colin.mckin...@gmail.com> wrote: > On 1 Nov, 10:32, joanna <m...@barrelofcrafts.com> wrote: > > > > > Okay, my snippet goes hand in hand it is supposed to not show bad > > words that were searched for and it is supposed to show the 10 most > > recent searches. Here's my problem, it is only showing the 10th row as > > far as recent searches and the filtering of bad words doesn't work. > > > $query=@mysql_query("SELECT search,recent FROM search > > ORDER BY recent ASC LIMIT 0,10 "); > > > while($row = mysql_fetch_array( $query )) > > { > > > $badWords = array('stupid', 'Jerk'); > > $numBadWords = count($badWords); > > > for($i="0";$i<$numBadWords;$i++){ > > if(stripos($ss_mess,$badWords[$i]) != FALSE){ > > > } > > > } > > > $recent=($row['search']); > > > } > > > echo $recent; > > > I should note that search is both a field and the name of the table (i > > know not the best design) and the field "recent" is timestamp type. > > You're doing it wrong - trying to exclude a dataset in PHP from a > dataset held in the database by moving them both to PHP. Try with them > both in the database: > > SELECT search,recent FROM search OUTER JOIN badwords ON > (search.search=badwords.word) > WHERE badwords.word IS NULL > ORDER BY recent ASC LIMIT 0,10 > > C. Thanks for the replies, I got that piece of code from somewhere, and honestly didn't notice that undefined string. I think I will move the bad words out of the array and into a field. Thanks again. |