這是一個複雜的foreach,在一個if內部的while循環中,由於某種原因,它重複了結果並在每次運行循環時追加結果。碼和輸出如下:php mysql foreach循環重複結果
$timezonedate = date('Y-m-d');
$yesterday = date('Y-m-d', strtotime('-1 days'));
$tomorrow = date('Y-m-d', strtotime('+1 days'));
$timezonesql = "SELECT contacts.id AS contact_id, contacts.cbdate AS cbdate, contacts.cbtime AS cbtime, contacts.firstName AS contact_firstName, contacts.lastName AS contact_lastName, contacts.email AS contact_email, contacts.tel1 AS tel, contacts.rep AS contact_rep, members.id AS member_id, members.firstName AS member_firstName, members.lastName AS member_lastName, members.email AS member_email, members.timezone AS timezone FROM contacts INNER JOIN members ON contacts.rep = members.id WHERE contacts.cbdate = '$timezonedate' || contacts.cbdate = '$yesterday' || contacts.cbdate = '$tomorrow' ORDER BY contacts.id ASC";
$timezoneresult = mysql_query($timezonesql, $link);
if(mysql_num_rows($timezoneresult) == 0) {
}
else
{
while($timezoneRow = mysql_fetch_array($timezoneresult)) {
date_default_timezone_set($timezoneRow['timezone']);
$nowdate = date('Y-m-d');
$beforetime = date('H:i:59', time() - 1*60);
$aftertime = date('H:i:00', time() + 1*60);
if($timezoneRow['cbdate'] = $nowdate && $timezoneRow['cbtime'] > $beforetime && $timezoneRow['cbtime'] < $aftertime) {
$contactid[] = $timezoneRow['contact_id'];
$contactemail[] = $timezoneRow['contact_email'];
$contactfirstName[] = $timezoneRow['contact_firstName'];
$contactlastName[] = $timezoneRow['contact_lastName'];
$memberemail[] = $timezoneRow['member_email'];
foreach($contactid as $key=>$val) {
echo "".$contactfirstName[$key]." ".$contactlastName[$key]." ".$memberemail[$key]."<br>";
}
}
else {}
}
}
exit;
輸出:
米老鼠[email protected]
米妮妮@電子郵件。 commickey mouse [email protected]
minnie mouse minnie @ email.com
唐老鴨[email protected]米老鼠[email protected]
米妮[email protected]
唐老鴨[email protected]
高飛狗[email protected]
我已經搜遍了這裏的類似問題,找不到一個能夠解決我的問題的方法。有任何想法嗎??
聲明:我知道我應該使用準備好的聲明,我會在這個項目結束後立即開始。
@DonCallisto contact_id和member_id是唯一的。 – 2014-09-24 16:10:40
請[不要在新代碼中使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 *他們不再維護,並[已正式棄用](https://wiki.php.net/rfc/mysql_deprecation)*。看到[紅色框](http://uk.php.net/manual/en/function.mysql-connect.php)?學習[準備的語句](http://en.wikipedia.org/wiki/Prepared_statement),並使用[PDO](http://us1.php.net/pdo)或[MySQLi](http:// us1.php.net/mysqli)。 [這篇文章](http://php.net/manual/en/mysqlinfo.api.choosing.php)將幫助你決定哪些。 – 2014-09-24 16:13:04
即使你在你的問題中增加了免責聲明,你也無法阻止mysql hater。永遠。 – 2014-09-24 17:47:00