2016-12-02 3 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)){ 

dies funktioniert, aber die Ergebnisse sind in gemischten Daten.MySQL Ähnliche 2 Spalten müssen beginnen Daten von 1. Spalte

Daten LIMIT ist 16.

i von Starcast 1. alle Daten wollen.

Beispiel: - Wenn startcast Daten mit 9 Ergebnis übereinstimmen, so letzten 7 Daten mit Genre übereinstimmen.

Entschuldigung für schlecht Englisch.

Frage ist UPDATE .....

+0

Verwenden Sie nicht die 'mysql_ *' API. –

Antwort

1

Ich bezweifle, wie Sie Ihre gepostet Abfrage funktioniert. Es sollte Kompilierungsfehler auslösen. Ihre Abfrage sollte wie folgt aussehen

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

Wenn startcast Daten übereinstimmen mit 9 Ergebnis so letzten 7 erforderlichen Daten für Spiel mit Genre

nicht denken, Sie es so machen können, wenn Sie UNION Abfrage wie

verwenden
(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

danke .. jetzt Frage ist update .. –

+0

starcast Datennummer ist nicht behoben ... –

+0

Es muss nicht sein, da Sie es Parameter übergeben. Probieren Sie zuerst die vorgeschlagene Antwort aus. Wenn das nicht funktioniert, dann kommentar. sonst bearbeiten Sie Ihre Post und fügen Sie Beispieldaten und gewünschte Ausgabe hinzu. – Rahul

Verwandte Themen