我的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变量。我选择的数据库看起来像:
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!"; ?>
除了我在注释中指出的缺失代码外,您的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
。
我认为您仍然需要使用
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
请注意,正如在这个问题的其他评论中所说的那样,quoation标记是如何使用的。
解释:
首先,您的mysql_query
语法错误-双引号必须在查询之后
所以,当您激发查询时,$getTheOffers
会得到布尔值false
然后你试着去预测它,这显然会给你一个警告,你已经提到了这个问题
简而言之,
当您为mysql_query
编写正确的语法时,您在问题中提到的所有问题都将得到解决:
$getTheOffers = mysql_query("SELECT * FROM items_offer", $connen);