2011-04-01 18 views
11

मेरे होमवर्क में एक समस्या है उदाहरण के लिए एक श्रेणी सरणी $ cat = array ('1', '4', '5', '7') है; अब मुझेएसक्यूएल एक सरणी में सबकुछ चुनें

SELECT * FROM products WHERE catid='1' 
SELECT * FROM products WHERE catid='4' 
SELECT * FROM products WHERE catid='5' 
SELECT * FROM products WHERE catid='7' 

पर आधारित डीबी से उत्पादों का चयन करने की आवश्यकता है क्या यह एक ही प्रश्न में ऐसा करना संभव है? क्योंकि चार प्रश्नों के अंतिम परिणाम संयुक्त किए जाएंगे।

उत्तर

0
$SQL_Part="(" 
$i=0; 
while ($i<length($cat)-1) 
{ 
    $SQL_Part+=$cat[i]+","; 
} 
$SQL_Part=$SQL_Part+$cat[$i+1]+")" 

$SQL="SELECT * FROM products WHERE catid IN "+$SQL_Part; 

यह अधिक सामान्य है और किसी भी सरणी के लिए फिट होगा !!

1
// array of $ids that you need to select 
$ids = array('1', '2', '3', '4', '5', '6', '7', '8'); 

// create sql part for IN condition by imploding comma after each id 
$in = '(' . implode(',', $ids) .')'; 

// create sql 
$SQL = 'SELECT * FROM products WHERE catid IN ' . $in; 

// see what you get 
var_dump($sql); 
संबंधित मुद्दे