这是我的函数,我第一次使用ophalencontact()在这些联系人被放入我的类中之后,为了从我的DB中检索联系人,我将它们放在一个数组中(因为1个"klant"可以有多个联系人)
现在我想把我的联系人放入我的"klant(客户)"中,并使用过滤方法
$contact= array();
foreach($contactlijst as $CT ){
if($key['idklanten']==$CT->getklantID()){
array_push($contact,$CT);
}
else{$contact="";}
}
我想可能是这个功能出了问题,有人能帮我吗?代码不会出现调试错误,但当我在网站上呈现它时,它会给我一个空数组。
提前谢谢。
function ophalen(){
$this->ophalencontact();
$dbh = new pdo( 'mysql:host=localhost;dbname=nextlead_spreker','nextlead_spreker', 'xxxxxx',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
try {$sth = $dbh->prepare("select * from klanten;");
$sth->execute();
$row = $sth->fetchAll(PDO::FETCH_ASSOC);
$lijst =array();
foreach($row as $key){
$contact= array();
foreach($contactlijst as $CT ){
if($key['idklanten']==$CT->getklantID()){
array_push($contact,$CT);
}
else{$contact="";}
}
$I= new Klanten($key['idklanten'],$key['naam'],$key['adres'],$key['postcode'],$key['stad'],$contact);
array_push($lijst,$I);
}
return $lijst;
}
catch(PDOException $ex){
print_r($ex);
die(json_encode(array('outcome' => false, 'message' => 'Unable to connect')));
}
}
function ophalencontact(){
$dbh = new pdo( 'mysql:host=localhost;dbname=nextlead_spreker', 'nextlead_spreker', 'xxxxxxx',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
try {$sth = $dbh->prepare("select * from contactpersoonklant;");
$sth->execute();
$row = $sth->fetchAll(PDO::FETCH_ASSOC);
$contactlijst =array();
foreach($row as $key){
$CT= new klantContact($key['idcontactpersoonklant'],$key['Voornaam'],$key['tussenvoegsel'],$key['achternaam'],$key['tel'],$key['email'],$key['klanten_idklanten']);
array_push($contactlijst,$CT);
print_r($contactlijst);
}
return $contactlijst;
}
catch(PDOException $ex){
print_r($ex);
die(json_encode(array('outcome' => false, 'message' => 'Unable to connect')));
}
}
摆脱
else {$contact = "";}
您正在将所有匹配的元素添加到数组中,但每次遇到不匹配的元素时,都会将数组替换为空字符串。您应该忽略不匹配的元素。
另一个问题是:您从未在ophalen
函数中设置$contactlijst
,因此foreach($contactlist as $CT)
循环不会执行任何操作(如果启用错误报告,您应该会收到关于未定义变量的通知)。您从$this->ophalencontact
返回它,但ophalen
对返回值没有任何作用。所以第一行应该是:
$contactlijst = $this->ophalencontact();
您在此处将$contact设置为空字符串:
else{$contact="";}
你想在其他方面做什么?