簡體   English   中英

在WHILE / Loop內部運行查詢

[英]Running Query inside WHILE/Loop

在這里需要幫助,得到一個查詢,該查詢計算每個成員的行數並將其通過電子郵件發送給他們。

因此,現在他們收到一封簡單的電子郵件,告訴他們有多少帖子,我已經找到了一種在主查詢中運行第二個查詢的方法(該方法會計算帖子表中的帖子,並根據其帳戶信息生成電子郵件另一個表)我們想要的是讓電子郵件也顯示每個帖子,我已經在第一個查詢中加入了表,但似乎找不到在while語句中運行第二個表的方法。

這是我們當前擁有的代碼。 任何幫助將不勝感激。

<?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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM