-1

これを手伝ってくれてありがとう。

私の問題はこれです、私は次のコードを持っています(データベース接続情報とテーブル名はセキュリティのために変更されています)。私はここで立ち往生しているので、これは完成品ではありません. データベースから抽出した仮想ドメイン、ユーザー、およびエイリアスを実行する、メール サーバー用の管理スクリプトを作成しています。このサーバーは問題なく動作します。ドメインの詳細ページでこの関数を呼び出して、最初にメールボックスの数をリストし、次にエイリアスの数をリストして、それらを編集、追加、および削除できるようにします。メールボックス名のリストまでたどり着きましたが、最初のレコードをスキップしているようです。私の機能は次のとおりです。

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>";
        }
    }
}

ページには次のように表示されます。

postmaster@john-stapleton.com
john@john-stapleton.com

これを言うことになっているとき:

info@john-stapleton.com
postmaster@john-stapleton.com
john@john-stapleton.com

私が間違っていることは何ですか?

4

2 に答える 2

2

クエリを定義した直後に最初のフェッチを行っています

$domain_boxes_results = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC); 
于 2012-09-06T01:05:36.130 に答える
2

クエリを実行した後に mysql_fetch_array を 1 回呼び出すため、while ループを実行する前に 1 行を取得します。

于 2012-09-06T01:06:50.983 に答える