Mysql循环返回不正确的数据

时间:2017-06-26 13:43:45

标签: foreach while-loop

Good Afternoon All,

我正面临一个问题,无法弄清楚我在myslq / php while / foreach循环中做错了什么。

循环似乎是重复的结果。

queue:listen

现在它确实让我回复:

////////////////////////Check which site have this app///////////////////
$query_t = "SELECT * FROM site WHERE app_id='2'";
$result_t = mysql_query($query_t) or die(mysql_error());

$rows = array();     
while($r_t = mysql_fetch_array($result_t))
    $rows[] = $r_t;
foreach($rows as $r_t){ 

$this_areport_site_id = $r_t['site_id'];

  //////////////Search for user emails that have access to this app ////////
 $query_t4 = "SELECT mail FROM $user_tbl WHERE arep_kitchen='1' AND site_id='$this_areport_site_id' ORDER BY id ASC";
 $result_t4 = mysql_query($query_t4);

 while ($r_t4 = mysql_fetch_array($result_t4)) {
    $areport_kitchen_email .= $r_t4[mail].',';// append comma after each value you append to the string

 }

echo 'Here: '.$this_areport_site_id.' - '.$areport_kitchen_email.'<br />';

     }

我在期待

Here: AHROW - person1@email.com,
Here: AHROW - person1@email.com,person2@email.com,
Here: AHALEX - person1@email.com,person2@email.com,person3@email.com,

我很感激,因为我在整个上午都坐在那里,我在做错了什么。

2 个答案:

答案 0 :(得分:0)

在向其附加电子邮件之前,您应该清空字符串$areport_kitchen_email

$areport_kitchen_email = ''; // empty emails container string

while ($r_t4 = mysql_fetch_array($result_t4)) {
   $areport_kitchen_email .= $r_t4[mail].',';// append comma after each value you append to the string
}

这样可以避免重复。

答案 1 :(得分:0)

我已经通过在另一个内部执行两个循环并从逗号分隔的字符串中退出来解决了这个问题,这似乎是第一篇文章中的一个问题。

Bozzy,谢谢你的努力。

$query_t7 = "SELECT * FROM site WHERE app_id='2'";
$result_t7 = mysql_query($query_t7) or die(mysql_error());
while($r_t7 = mysql_fetch_array($result_t7)) {

$this_areport_site_id = $r_t7['site_id'];

$query_t8 = "SELECT * FROM admins WHERE arep_kitchen='1' AND site_id='$this_areport_site_id' ORDER BY id ASC";
$result_t8 = mysql_query($query_t8) or die(mysql_error());
while($r_t8 = mysql_fetch_array($result_t8)) {

$areport_kitchen_email = $r_t8['mail'];

}
}