0

我有以下 PHP 代码:

if(!($rsContactList=mysql_query($sqlContactList,$con)))
{
    echo mysql_error();
}
else
{
    echo mysql_num_rows($rsContactList);
    while(($contact=mysql_fetch_array($rsContactList)))
    {
        $phone = $contact['telephone'];
        echo "<option value='$phone>'$phone</option>";
    }
}

我得到的行数超过一但无法显示。让我知道为什么?提前致谢。

4

2 回答 2

1

您正在将数据提取到数组中。这意味着它只是获取所有数据并将其放入数组中而无需循环。您可能想在mysql_fetch_assoc这里使用,因为它会获取下一行,执行您的代码并再次获取下一行。

while($contact = mysql_fetch_assoc($rsContactList)) { }

或者为了防止assignment in condition错误:

while(($contact = mysql_fetch_assoc($rsContactList)) !== false) { }

但是,您不应该再使用mysql_*了。现在有更好的选择,比如PDOand mysqli。我自己使用 mysqli 是这样的:

$rMysqli = new mysqli("localhost", "user", "password", "database");

$sSqlQuery $rMysqli->query("SELECT * FROM table");
while(($aRowQuery = $sSqlQuery->fetch_assoc()) !== false) {  }
于 2012-11-06T07:06:09.067 回答
0

改变

While(($contact=mysql_fetch_assoc($rsContactList)))
        {...

While($contact=mysql_fetch_assoc($rsContactList))
        {...
于 2012-11-06T07:07:20.950 回答