это моя функция, когда я сначала использую ophalencontact() для извлечения контакта из моего БД после того, как они помещены в мой класс, я помещаю их в массив (потому что 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 = "";}
Вы добавляете все соответствующие элементы в массив, но каждый раз, когда вы сталкиваетесь с несогласованным элементом, вы заменяете массив пустой строкой. Вы должны просто игнорировать несогласованные элементы.
Другая проблема: вы никогда не устанавливаете $contactlijst
в функции ophalen
, поэтому цикл foreach($contactlist as $CT)
ничего не делает (если вы включаете отчет об ошибках, вы должны получить уведомление о неопределенной переменной). Вы возвращаете его из $this->ophalencontact
, но ophalen
ничего не делает с возвращаемым значением. Итак, первая строка должна быть:
$contactlijst = $this->ophalencontact();
Вы устанавливаете $ contact для пустой строки здесь:
else{$contact="";}
Что вы пытаетесь сделать в этом?
$row
и$key['idklanten']
к вопросу?