filter bad words,list recent 10

filter bad words,list recent 10

am 01.11.2007 11:32:02 von Joanna

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.

Re: filter bad words,list recent 10

am 01.11.2007 13:14:08 von Captain Paralytic

On 1 Nov, 10:32, joanna 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.

Re: filter bad words,list recent 10

am 01.11.2007 17:18:55 von colin.mckinnon

On 1 Nov, 10:32, joanna 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.

Re: filter bad words,list recent 10

am 01.11.2007 22:26:44 von Joanna

On Nov 1, 12:18 pm, "C. (http://symcbean.blogspot.com/)"
wrote:
> On 1 Nov, 10:32, joanna 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.