2011-12-30 16 views
0

私は最後の20の検索結果を表示する小さなタグクラウドを持っています。そのため、数字0または1で始まるキーワードは表示されません。ランダム検索0と1で始まってひそかに言います。Googleは
0 1 1 0 0€9 1¿½§7 0¡0�§7
のような文法を入力しています。私はそれを示さないようにしたいと思います。preg_place全体の単語

ここでは、基本的には私が現在タグを表示するために使用しているものです。

$ num = '1';
$ result = mysql_query( "キーワードを時間順にキーワードから選択DESC LIMIT 20");
一方(($行=は、mysql_fetch_row($結果))& &($ NUM < = '20')){
$ワード= $行[0]。
$ time = $ row [1];
echo ""。$ word。 "";
$ num ++;

$ wordはフィルタリングして表示する必要があります。私はpreg_replaceを使って方法を見つけ出そうとしましたが、最初の数を取り除くためにしか得ることができません。

$ wordで0または1で始まるすべての単語を削除する方法を知っている人はいますか?ありがとう。

答えて

2

あなたが選択を使用したくない場合は、することができますこれはPHPのようなもので:

$result=mysql_query("select keyword, time from keywords order by time DESC LIMIT 20"); 
while ($row=mysql_fetch_row($result)) { 
    if (preg_match('^\w',$row[0])) { 
     $word = $row[0]; 
     $time = $row[1]; 
     echo "".$word.""; 
    } 
} 

これはアルファ文字で始まる単語だけをエコーし​​ます。

+0

sqlクエリがうまくいくようです。私はあなたのSQLでWHEREの前に注文を取り除かなければならなかった。私はあなたのタイプミスだと思う。それ以外は、優れた作品です。ありがとう。 – chris

+0

ありがとう、それは今修正されたタイプミスでした。 – Sorin

0

何を求めているのかわかりません。しかし、あなたはそうすることができます

このように$ wordの最初の文字が0または1の場合、NULLを返します。

あなたが

select keyword, time from keywords WHERE keyword REGEXP '^[:alpha:]' ORDER by time DESC LIMIT 20 

これがアルファ文字で始まるキーワードだけデータベースから取得します]を選択し、データベースからそれらをスキップすることができ

関連する問題