2013-05-05 78 views
0

嗨,下面是我在我的程序中的代码的一部分。从PHP的foreach数组中打印值

 .......................... 
     foreach($_POST['delz'] as $delz) 
     { 
      $QR = "SELECT bname, bsku FROM brands WHERE id='$delz'"; 
      $rr= mysqli_query($db,$QR) or die ("SQL Error"); 
      $roV = mysqli_num_rows($rr); 


     echo "<tr> 
     <td class='sc_five'> 
     $rr "; 
       ......... 

当我试图打印的$rr我得到一个错误说Object of class mysqli_result could not be converted to string in C:\xam........谁能告诉我在哪里,我都出了问题,我如何调整自己的价值观?

编辑:

我已经得到了连接如下:

include ('../../connection/index.php'); 
+0

'$ rr'是mysqli的结果对象,用' - > fetch_assoc'就可以了。 – 2013-05-05 05:44:25

+0

你很容易受到[SQL注入攻击](http://bobby-tables.com)的影响。在继续之前修复您的代码。 – 2013-05-05 05:45:00

+0

也不要把你的查询放在foreach循环中。 – 2013-05-05 05:45:17

回答

1

试试这个:

foreach($_POST['delz'] as $delz) 
    { 
     $delz=mysqli_real_escape_string($db,$delz); 
     $QR = "SELECT bname, bsku FROM brands WHERE id='$delz'"; 
     $rr= mysqli_query($db,$QR) or die ("SQL Error"); 
     $roV = mysqli_num_rows($rr); 
     $r=$rr->fetch_assoc(); 
      foreach ($r as $rr) 
       echo "<tr><td class='sc_five'>".$rr['bname']." ".$rr['bsku']; 
+0

一切都很完美,但你也必须迭代'$ rr-> fetch_assoc()',因为查询可能包含多于一行。反正+1。 – 2013-05-05 05:52:07

+0

通过'$ r'循环播放,我认为他只会选择一个,因为他只是在取回后立即开始使用它。 – 2013-05-05 06:22:31