0
mysql_select_db('fireworks', $conn);

$ask = "SELECT * FROM name";
$result = mysql_query($ask, $conn) or die();
while ($info = mysql_fetch_assoc($result));
{
    var_dump($info);
    if (is_array($result)) {
        foreach ($info as $group) {
            print $group;
        } //end foreach
    } else {
        print "fail..";
    }//end debug
} //end while

phpmyadminで確認したところ、データベースfireworksCLEARLYには「name」という名前のテーブルが含まれています。使用するvar_dumpと表示されますbool(false)mysql_fetch_assoc印刷する値が残っていない場合にのみfalseを返すと思われますか?

編集:申し訳ありませんが、完全なコードを含める必要がありました:

$conn = mysql_connect("localhost", "root") or die(mysql_error());
if ($conn)
{
    print "<h1>CONNECTED!!!!</h1>";
}//end conn

はい、表に情報が記載されています。すべての名前を確認しました。

ID  firstName lastName
1   uraz      The pig
2   Billy     Henson
3   Jean      Jerk
4   Fat       Jerk
4

3 に答える 3

0

そのコードを省略しない限り、実際にはmysqlデータベースに接続していないようです。また、テーブルが空であるか、フェッチする行がこれ以上ない場合は、mysql_fetch_assocfalseを返します。したがって、データを正しく選択していることを再確認してください。

mysqlユーザーにはSELECT権限がありますか?パスワードは正しいですか?fireworks正しいデータベース名ですか?一部のウェブホストは、アカウントのユーザー名をすべてのデータベースのプレフィックスとして追加するため、おそらくあなたのアカウントのユーザー名が追加されますbnynn_fireworks(アカウントのユーザー名を除く)。

これが実際にどのように可能かはわかりませんが、falseになっているので、whileループに入る必要はありません。

于 2011-09-18T17:35:53.010 に答える
0

コードに論理構文エラーがあります:

while ($info = mysql_fetch_assoc($result));

現在、これによりすべての行がループされ、完了すると最後の値(false)が残ります。

あなたが持っている必要があります:

while ($info = mysql_fetch_assoc($result))
于 2011-09-18T17:43:53.797 に答える
0

クエリを送信し、最初の行を取得して、奇妙なチェックを行います。

$result = mysql_query($ask, $conn) or die();
while ($info = mysql_fetch_assoc($result));
{
var_dump($info);
if (is_array($result)) // <--- :-?
{
foreach ($info as $group)
{print $group;} //end foreach
}else{
print "fail..";
}//end debug
} /

mysql_query()関数はリソースまたはブール値のFALSEを返しますが配列なることはありません。

于 2011-09-18T17:49:04.447 に答える