我有以下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>";
}
}
我获得的行数不止一个但无法显示。让我知道为什么?提前谢谢。
答案 0 :(得分:1)
您正在将数据提取到数组中。这意味着它只获取所有数据并将其放入数组中而不进行循环。您可能希望在此使用mysql_fetch_assoc
,因为它会获取下一行,执行您的代码并再次获取下一行。
while($contact = mysql_fetch_assoc($rsContactList)) { }
或者阻止assignment in condition
错误:
while(($contact = mysql_fetch_assoc($rsContactList)) !== false) { }
然而,您不应再使用mysql_*
。现在有更好的替代方案,例如PDO
和mysqli
。我这样使用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))
{...