2012-12-04 173 views
0

爲什麼不輸出第一個元素數組?爲什麼不輸出第一個元素數組?

我使用下一個代碼

$product_idn='123112$2313213'; 
$count_products=substr_count($product_idn,'$')+1; 

$idn_products=explode('$',$product_idn); 
$name_products=''; 
$s=0; 
while($s<=$count_products){ 
$prod=$idn_products[$s]; 
$res10=mysql_query("..... WHERE `product_idn`='$prod'"); 
$i10=mysql_fetch_assoc($res10); 
$name_products.=$i10['name'].', '; 
$s++; 
} 
echo $name_products; 
//give 2313213,, 

爲什麼不輸出第一元件陣列?

+0

爲什麼不使用'for(...)'? – Dion

+3

我更喜歡foreach()數組循環,不需要計數 – 2012-12-04 22:06:51

+0

是的意識到,foreach會在評論後更好:D – Dion

回答

4

$product_idn='123112$2313213'; 

$idn_products=explode('$',$product_idn); 
$name_products=''; 

foreach($idn_products as $val){ 
$res10=mysql_query("..... WHERE `product_idn`='$val'"); 
$i10=mysql_fetch_assoc($res10); 
$name_products.=$i10['name'].', '; 
} 
echo $name_products; 
+0

儘管在這種情況下這可以說是循環的一種更簡潔的方式,但是實際上您是否能看到原始循環的問題?除非我累了,否則它看起來應該起作用。我懷疑Leo沒有看到結果的原因是因爲SQL查詢沒有返回該產品的結果? –

+0

沒有。對所有的產品都有效 –

+0

是的,這也是我的結論。對原始代碼進行了很多小的調整,例如$ count_products = substr_count($ product_idn,'$')+ 1;可能只是$ count_products = substr_count($ product_idn,'$',1);而不是寫一篇文章,最好是發佈典型的代碼。 – gview

0

有什麼原代碼中使用了很多不同尋常的技術。我最好猜測我會做什麼,但不知道此代碼的用途是:

$product_idn = '123112$2313213'; 

$idn_products = explode('$', $product_idn); 

$name_products = ''; 
foreach($product_idn as $value) { 
    $res10 = mysql_query("SELECT name FROM ... WHERE `product_idn`='$value'"); 
    if ($res10) { 
     $i10 = mysql_fetch_assoc($res10); 
     $name_products .= $i10['name'].', '; 
    } 
} 
$name_products = rtrim(', ', $name_products); 
echo $name_products; 
+0

謝謝你的幫助) –

+0

當然,我有在查詢中出現錯誤......請參閱ammendment ..需要在查詢中使用$ value,其中的條件在我的版本中。 – gview

相關問題