在WHILE/Loop中运行查询


Running Query inside WHILE/Loop

这里需要帮助,得到了一个查询,计算每个成员的行数并通过电子邮件发送给他们。

现在他们得到一个简单的电子邮件告诉他们他们有多少帖子,我在寻找一种方法来运行第二个查询在主查询(这方面的职位表,生成基于他们的账户信息的邮件在另一个表)我们想要的是电子邮件显示每个帖子,我已经在第一次查询连接表,我似乎无法找到一个方法来运行第二个内部虽然语句。

这是我们目前拥有的代码。如有任何帮助,我将不胜感激。

<?php
//Connect to mysql server
$link = mysql_connect(localhost, xxxxxxx, xxxxxxxx);
if(!$link) {
    die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(systm_test);
if(!$db) {
    die("Unable to select database");
}
$count = 0; 
$date = date("Y-m-d", $_SERVER['REQUEST_TIME']);
$day = date("l F jS, Y", $_SERVER['REQUEST_TIME']);
$qry= sprintf("SELECT p.tech, p.date, e.email, e.fullname, "
            . "COUNT( * ) AS record_count "
            . "FROM users_test AS e "
            . "JOIN sc AS p ON e.tech = p.tech "
            . "WHERE DATE = '%s' "
            . "GROUP BY p.tech, e.fullname, e.email, p.date",
          $date
      );
$result = mysql_query($qry); 
if (!$result) { 
    # something went wrong... 
    error_log(sprintf('%d: %s', mysql_errno(), mysql_error())); 
    echo 'Unable to retrieve callpost report';
} else { 
    while ($node = mysql_fetch_object($result)) { 

        $headers = "From: xxxxxxxxxx <noreply@xxxxx.xxx>'r'n"; 
        $headers .= "Content-Type: text/html; charset='"iso-8859-1'"'r'n"; 
        $headers .= "X-Priority: 1 (Higuest)'r'n"; 
        $headers .= "Importance: High'r'n"; 
        $subject = sprintf('%s | Post Report', $node->fullname); 
            $date = date("Y-m-d", $_SERVER['REQUEST_TIME']);

        $body = sprintf( 
            'Dear %s, <br><br> 
            Your daily post report for %s. 
            <br> 
            <br>     
            System Info<br> 
            ------------------------------------<br> 
            Member Id:      <b>%d</b><br> 
            Posts:      <b>%d</b>
            <br>
            System Name:    TEST<br>', 
            $node->fullname, 
            $day, 
            $node->tech, 
            $node->record_count 
        ); 
        if (!mail($node->email, $subject, $body, $headers)) 
        { 
            error_log( 
                sprintf('failed sending email report to %s (%d)', 
                    $node->fullname, 
                    $node->tech) 
            ); 
        } 
    } //end while statement 
     mail($node->email, $subject, $body, $headers);
  }
}
?>

子选择就是你要找的。类似。

"SELECT p.tech, p.date, e.email, e.fullname, "
        . "COUNT( * ) AS record_count, "
        . "(SELECT COUNT(*) FROM Posts z WHERE z.author = e.tech) as post_count "
        . "FROM users_test AS e "
        . "JOIN sc AS p ON e.tech = p.tech "
        . "WHERE DATE = '%s' "
        . "GROUP BY p.tech, e.fullname, e.email, p.date"