不同的mysql连接问题

时间:2013-12-03 04:06:42

标签: php mysql foreach

我的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!";  ?>

3 个答案:

答案 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_querymysql_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);