不同的mysql连接问题


Different mysql connecion problems

我的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_querymysql_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);