2012-09-06 110 views
-1

在此先感謝您的幫助。mysql_fetch_array while循環跳過查詢中的第一行

我的問題是這樣的,我有以下代碼(減去數據庫連接信息和表名稱更改爲安全)。我卡在這裏,所以這不是成品。我正在爲我的郵件服務器構建一個管理腳本,用於處理數據庫中繪製的虛擬域,用戶和別名。這臺服務器完美地工作。我在我的域名詳細信息頁面上調用此函數,首先列出郵箱的數量,然後列出允許您進入和編輯,添加和刪除它們的別名數量。我一直列出郵箱名稱,它似乎跳過第一個記錄。我的功能如下:

function listdomaindetails() { 
    $domain = $_GET['domain']; 
    $domaindetails_query = mysql_query("SELECT id FROM virtual_domains WHERE name='$domain'"); //get domain id 
    $domaindetails_results = mysql_fetch_array($domaindetails_query, MYSQL_ASSOC); //Set domain id 
    $domain_boxes_query = mysql_query("SELECT email FROM virtual_users WHERE domain_id='$domaindetails_results[id]'"); //Get virtual users 
    $domain_boxes_results = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC); //Set virtual users 
    $domain_boxes_count = mysql_num_rows($domain_boxes_results); //Count Boxes 
    $domain_aliases_query = mysql_query("SELECT 'source', 'destination' FROM virtual_aliases WHERE domain_id='$domaindetails_results[id]'"); //Get aliases 
    $domain_aliases_results = mysql_fetch_array($domain_aliases_query, MYSQL_ASSOC); //Set aliases 
    $domain_aliases_count = mysql_num_rows($domain_aliases_results); //Count Aliases 
    if ($domain_boxes_count = 0) { 
     echo "This domain has no Email boxes, please add some by clicking <a href='email_add.php?domain=$domain'>HERE</a>"; 
    } else { 
     while ($domain_boxes_row = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC)) { 
     echo "<a href='email_detail.php?box=".$domain_boxes_row['email']."&domain=".$domain."'>".$domain_boxes_row['email']."</a><br>"; 
     } 
    } 
} 

頁面顯示如下:

[email protected] 
[email protected] 

當它應該這樣說:

[email protected] 
[email protected] 
[email protected] 

任何知道我做錯了什麼?

回答

2

你做第一因爲你叫mysql_fetch_array您運行查詢後一旦定義查詢

$domain_boxes_results = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC); 
+0

工作,我想出來。 thansk的幫助,你們倆都釘在了頭上!我愛的另一個原因是這樣! –

2

後立即取出,從而拉動了一列運行while循環之前。

+0

這一直困擾着我永遠。我很感謝你用簡單的英文來解釋它。 –