事先感谢您的帮助。
我的问题是,我有以下代码(减去数据库连接信息,并且为了安全性更改了表名)。我被困在这里所以这不是成品。我正在为我的邮件服务器构建一个管理脚本,该脚本执行从数据库中提取的虚拟域,用户和别名。这台服务器完美无瑕。我在我的域名详细信息页面上调用此函数,首先列出邮箱数量,然后列出别名数量,然后您可以进入并编辑,添加和删除它们。我一直在列出邮箱名称,它似乎跳过了第一条记录。我的功能如下:
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
知道我做错了什么?
答案 0 :(得分:2)
您在定义查询后立即进行第一次提取
$domain_boxes_results = mysql_fetch_array($domain_boxes_query, MYSQL_ASSOC);
答案 1 :(得分:2)
因为在运行查询后调用了一次mysql_fetch_array,因此在运行while循环之前会拉出一行。