你好,我从数据库中有一个选择,现在我将所有记录存储在变量$list
中。。在我的数据库中,我有更多具有相同电子邮件地址的帐户如何存储在变量$list
中。。
我有这个代码:
<?php foreach($list as $li){
echo $li['email'].'<br>';
}?>
在mysql中,我有这样的:
public function getEmailAddress(){
$sql = "SELECT email FROM account.account";
$stmt=$this->o_db->prepare($sql);
$stmt->execute(array(':apply' => $apply));
$result = $stmt->fetchAll();
return $result;
}
在查询mysql选择中,我需要一个条件还是在php代码中?
如果你想要的是跳过任何重复的电子邮件地址,下面是你可以做的。
只需在查询中使用DISTINCT关键字。
$sql = "SELECT DISTINCT email FROM account.account";
或者,您可以使用PHP。
<?php
$processed_emails = [];
foreach($list as $li){
$email = $li['email'];
if(!in_array($email, $processed_emails)) {
echo "{$email}<br>";
$processed_emails[] = $email;
}
}
?>
或者,您可以使用PHP的array_unique()
函数。
<?php
$list = array_unique($list);
foreach($list as $li){
echo $li['email'].'<br>';
}
?>
注:
您的代码可能因此而失败:$stmt->execute(array(':apply' => $apply));
。您正在随查询一起发送一个参数,但您的查询没有参数。由于您没有参数,因此也不需要$stmt=$this->o_db->prepare($sql);
。
然后你的代码应该是:
$sql = "SELECT email FROM account.account";
$stmt=$this->o_db->query($sql);
$result = $stmt->fetchAll();