无法跟踪逻辑错误

时间:2012-11-06 07:03:11

标签: php mysql

我有以下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>";
    }
}

我获得的行数不止一个但无法显示。让我知道为什么?提前谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

或者阻止assignment in condition错误:

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

然而,您不应再使用mysql_*。现在有更好的替代方案,例如PDOmysqli。我这样使用mysqli:

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

$sSqlQuery $rMysqli->query("SELECT * FROM table");
while(($aRowQuery = $sSqlQuery->fetch_assoc()) !== false) {  }

答案 1 :(得分:0)

更改

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

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