Php 循环跳过查询中的第一行时mysql_fetch_数组

Php 循环跳过查询中的第一行时mysql_fetch_数组,php,mysql,arrays,while-loop,fetch,Php,Mysql,Arrays,While Loop,Fetch,提前感谢您在这方面的帮助 我的问题是,我有以下代码(减去数据库连接信息,并且为了安全起见更改了表名)。我被困在这里,所以这不是成品。我正在为我的邮件服务器构建一个管理脚本,该脚本执行从数据库中提取的虚拟域、用户和别名。这台服务器工作正常。我在我的域详细信息页面上调用此函数,首先列出邮箱的数量,然后列出别名的数量,这样您就可以进入并编辑、添加和删除它们。我一路列出邮箱的名字,它似乎跳过了第一条记录。我的职能如下: function listdomaindetails() { $domain

提前感谢您在这方面的帮助

我的问题是,我有以下代码(减去数据库连接信息,并且为了安全起见更改了表名)。我被困在这里,所以这不是成品。我正在为我的邮件服务器构建一个管理脚本,该脚本执行从数据库中提取的虚拟域、用户和别名。这台服务器工作正常。我在我的域详细信息页面上调用此函数,首先列出邮箱的数量,然后列出别名的数量,这样您就可以进入并编辑、添加和删除它们。我一路列出邮箱的名字,它似乎跳过了第一条记录。我的职能如下:

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>";
        }
    }
}
当它应该这样说的时候:

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

知道我做错了什么吗?

定义查询后,您将立即执行第一次获取

$domain_boxes_results = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC); 

因为您在运行查询后调用mysql\u fetch\u数组一次,因此在运行while循环之前删除了一行。

这就成功了,我把它计算出来了。谢谢你们的帮助,你们两个都把它钉在了头上!我爱你的另一个原因!这一直困扰着我。谢谢你用通俗易懂的英语解释。
$domain_boxes_results = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC);