2015-09-10 18 views
5

Ich arbeite an einem Blog-System, wo Blogs kategorisiert werden und wir können die Kategorie wählen, die wir wollen. Dazu muss ich die Tabellen blogs und categories trennen. Ich weiß, wie man Blogs aus allen Kategorien und aus einer einzigen Kategorie bekommt, aber ich weiß nicht, wie man Blogs von mehreren, aber nicht allen Kategorien bekommt.Auswahl mehrerer Kategorien aus der Datenbank

Mein Code sieht wie folgt aus:

<?php 
    $query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category='cat1' ORDER BY blogs_id desc LIMIT 10"); 
    $result = mysql_query($query) or die("error:".mysql_error()); 
    while ($row = mysql_fetch_assoc($result)) { 
     $title = $row['title']; 
     $body = $row['body']; 
     $posted_by = $row['posted_by']; 
     ?> 

Dieser Code ist eine einzige Kategorie für die Auswahl und es funktioniert gut, aber jetzt möchte ich mehrere wählen (aber nicht alle) Kategorien. Ich habe ein paar verschiedene Optionen ausprobiert, aber es ist fehlgeschlagen:

<?php 
$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category='cat1' AND category='cat2' AND category='cat3' ORDER BY blogs_id desc LIMIT 10"); 

Dies hat nicht funktioniert.

Antwort

4

Verwenden Sie die IN Klausel:

WHERE category IN ('cat1', 'cat2', 'cat3') 

Alternativ Sie OR verwenden können:

WHERE category = 'cat1' 
    OR category = 'cat2' 
    OR category = 'cat3' 
3

Versuchen OR anstelle von AND (in dem Zustand). versuchen Sie dies:

$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category='cat1' OR category='cat2' OR category='cat3' ORDER BY blogs_id desc LIMIT 10"); 
1

Versuchen Sie, diese

$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category IN ('cat1', 'cat2', 'cat3') ORDER BY blogs_id desc LIMIT 10"); 
Verwandte Themen