我的foreach得到了一些错误。 错误如下:
bool(false) Warning: Invalid argument supplied for foreach() in /storage/content/34/123134
我有bool(false),因为我var_dump变量。我的代码如下所示:
$getTheOffers = mysql_query("SELECT * FROM `items_offer` , $connen");
foreach ($getTheOffers as $getTheOffer ) { ?>
$ connen是mysql_connection变量。我的选择db看起来像:
mysql_select_db($databaseInfo['sqldatabase'],$connen);
这里有什么问题?感谢您的支持!
这里完整的foreach和mysql
$getTheOffers = mysql_query("SELECT * FROM items_offer", $connen);
if( is_array($getTheOffers) )
{
foreach ($getTheOffers as $getTheOffer ) { ?>
<tr>
<td>
<?php if ($getTheOffer['offer_name'] == "plank") { ?>
<img src="images/plank.png" alt="Smiley face" height="42" width="42"> (Plank)
<?php } elseif ($getTheOffer['offer_name'] == "panel") { ?>
<img src="images/doubleplank.png" alt="Smiley face" height="42" width="42"> (Panel)
<?php } elseif ($getTheOffer['offer_name'] == "tape") { ?>
<img src="images/tape.png" alt="Smiley face" height="42" width="42"> (Tape)
<?php } elseif ($getTheOffer['offer_name'] == "bolt") { ?>
<img src="images/bolt.png" alt="Smiley face" height="42" width="42"> (Bolt)
<?php } elseif ($getTheOffer['offer_name'] == "nail") { ?>
<img src="images/nail.png" alt="Smiley face" height="42" width="42"> (Nail)
<?php } elseif ($getTheOffer['offer_name'] == "screw") { ?>
<img src="images/screw.png" alt="Smiley face" height="42" width="42"> (Screw)
<?php } ?>
</td>
<td><?php echo $getTheOffer['offer_amount'];?></td>
<td><?php echo $getTheOffer['offer_need'];?></td>
</tr>
<?php } } else echo "Not work!"; ?>
答案 0 :(得分:1)
除了我在评论中指出的缺失代码之外,你的mysql_query调用似乎不正确。
试试这个:
$getTheOffers = mysql_query("SELECT * FROM items_offer", $connen);
还可以尝试查看查询内容:
$result = mysql_query("SELECT * FROM items_offer", $connen);
$getTheOffers = mysql_fetch_array($result)
if( is_array($getTheOffers) )
{
foreach ($getTheOffers as $getTheOffer ) {
//... rest of your code goes here
}
} else{
// output error information
}
有关详细信息,请参阅官方文档网站上的mysql_query
和mysql_fetch_array
。
答案 1 :(得分:1)
我认为你仍然需要使用
mysql_fetch_array()
然后像这样使用它
$getTheOffers = mysql_query("SELECT * FROM items_offer", $connen);
$getArray = mysql_fetch_array($getTheOffers);
foreach ($getArray as row)
{
//do your code here
}
而不是直接在foreach上使用$ getTheOffers
请注意如何使用quosation标记,如本问题中的其他评论所述。
答案 2 :(得分:0)
<强>解释强>:
首先,您的mysql_query
语法错误 - 双引号必须在查询之后
因此,当您触发查询时,$getTheOffers
会获得布尔值false
然后你试着预告它,这显然会让你警告你提到的问题。
简而言之,
当您为mysql_query
撰写正确的语法时,您所解决的所有问题都将得到解决:
$getTheOffers = mysql_query("SELECT * FROM items_offer", $connen);