0

さて、基本的には、次のように foreach ループ内で mysql_fetch_array をループさせたいと思います。

    foreach($groupname as $group)
    {
        $sql2=mysql_query("SELECT * FROM groups WHERE group='$group'");
        $row2=mysql_fetch_array($sql2);
        ?>
        <img src="images/groups/" width="100px" height="100px" /><br />
        <table>
        <tr><td><b>Group: </b></td><td><?php echo $group; ?></td></tr>
        <tr><td><b>Description: </b></td><td><?php echo $row2['description']; ?></td></tr>
        </table><br /><br /><br />
        <?php
    }
    ?>

そのため、次のmysqlエラーが発生します。

  Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in...

これを回避する方法はありますか?

注: foreach ループを実行する前に、mysql テーブルをループする while ループを実行しますが、これは実際には成功しています。これは、while ループのコード スニペットです。

    $groupname=array();
    $sql=mysql_query("SELECT * FROM joined WHERE email='$email'");
    while($row=mysql_fetch_array($sql))
    {
        $groupname[]=$row['group'];
    }
4

2 に答える 2

1

groupmysql キーワードなので、バックティックで囲む必要があります。

WHERE `group` = ...
于 2013-07-10T01:32:03.640 に答える
1

mysql_error()ieを使用して、いつでもエラーをチェックできます。

$sql2=mysql_query("SELECT * FROM groups WHERE `group`='$group'") or die(mysql_error());

groupしかし、予約語http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
周りにバックティックを使用するため、失敗していますgroup-

SELECT * FROM groups WHERE `group`='$group'
于 2013-07-10T01:32:03.707 に答える