2016-12-02 9 views
2
$genre = 'Action|Adventure|Crime'; 
$starcast= 'Tom Hanks|Felicity Jones|Omar Sy|Irrfan Khan'; 

$S2 = mysql_query("SELECT title,hash,year FROM IMDB WHERE starcast REGEXP '".$starcast."' or genre REGEXP '".$genre."' LIMIT 16") or die (mysql_error()); 
     while ($S = mysql_fetch_assoc($S2)){ 

これは動作しますが、結果は混在したデータです。MySQL同様の2列目は最初の列でデータを開始する必要があります

データLIMITは、私がSTARCastので第一、すべてのデータが欲しい16

です。

例: - startcastデータが9つの結果と一致するため、最後の7つのデータがジャンルと一致する必要があります。

申し訳ありません。

質問は、私はあなたの投稿をクエリがどのように機能するか疑問UPDATE .....

+0

「mysql_ *」APIを使用しないでください。 –

答えて

1

です。コンパイルエラーが発生するはずです。 9結果startcastデータが一致した場合にあなたのクエリが

SELECT title,hash,year 
FROM IMDB WHERE starcast REGEXP '".$starcast."' or genre REGEXP '".$genre."' 
ORDER BY id DESC 
LIMIT 16 

よう

になりますので、ジャンル

で試合に必要な最後の7つのデータは、あなたが

よう UNIONクエリを使用しない限り、あなたはそのようにそれを作ることができるとは思いません
(SELECT title,hash,year 
FROM IMDB WHERE starcast REGEXP '".$starcast."' 
ORDER BY id DESC LIMIT 9) 
UNION 
(SELECT title,hash,year 
FROM IMDB WHERE genre REGEXP '".$genre."' 
ORDER BY id DESC LIMIT 7) 
+0

ありがとう..今質問は更新です。 –

+0

スターキャストデータ番号は固定されていません... –

+0

パラメータを渡している必要はありません。まず、提案された答えを試してみてください。もし動作しないなら、コメントしてください。それ以外の場合は投稿を編集し、サンプルデータと必要な出力を含めてください。 – Rahul

関連する問題