2012-11-06 44 views
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>"; 
    } 
} 

我正行不止一个,但无法显示的号码。让我知道为什么?提前致谢。

+0

显示您$ sqlContactList – Hkachhia

+0

你的选项字符串的查询放错位置的引号 – janenz00

回答

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) { } 
0

变化

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

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