2015-09-10 7 views
5

से कई श्रेणियों का चयन करना मैं एक ब्लॉग सिस्टम पर काम कर रहा हूं जहां ब्लॉग वर्गीकृत हैं और हम उस श्रेणी को चुन सकते हैं जिसे हम चाहते हैं। इसके लिए, मुझे टेबल blogs और categories को अलग करना होगा। मुझे पता है कि सभी श्रेणियों से और एक ही श्रेणी से ब्लॉग कैसे प्राप्त करें, लेकिन मुझे नहीं पता कि ब्लॉग को एकाधिक से कैसे प्राप्त करें लेकिन सभी श्रेणियों में नहीं।डेटाबेस

मेरे कोड इस तरह दिखता है:

<?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']; 
     ?> 

इस कोड को एक एकल वर्ग के चयन के लिए है और यह अच्छी तरह से काम करता है, लेकिन अब मैं कई (लेकिन सभी नहीं) श्रेणियों का चयन करना चाहते। मैंने कुछ अलग विकल्पों की कोशिश की, लेकिन असफल रहा:

<?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"); 

यह काम नहीं किया।

उत्तर

4

IN खंड का उपयोग करें:

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

वैकल्पिक रूप से, आप OR उपयोग कर सकते हैं:

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

AND के स्थान पर OR प्रयास करें (जहां हालत में)। इस प्रयास करें:

$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

इस

$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"); 
प्रयास करें