2012-12-04 126 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

相关问题