Фильтрация моих объектов из моего массива дает пустой массив

0

это моя функция, когда я сначала использую 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')));
    }  
}
Теги:
arrays

2 ответа

0
Лучший ответ

Избавиться от

else {$contact = "";}

Вы добавляете все соответствующие элементы в массив, но каждый раз, когда вы сталкиваетесь с несогласованным элементом, вы заменяете массив пустой строкой. Вы должны просто игнорировать несогласованные элементы.

Другая проблема: вы никогда не устанавливаете $contactlijst в функции ophalen, поэтому цикл foreach($contactlist as $CT) ничего не делает (если вы включаете отчет об ошибках, вы должны получить уведомление о неопределенной переменной). Вы возвращаете его из $this->ophalencontact, но ophalen ничего не делает с возвращаемым значением. Итак, первая строка должна быть:

$contactlijst = $this->ophalencontact();
  • 0
    я просто добавил его после этого все еще не работает, если я его удаляю :( также нет никаких несовпадающих элементов сейчас, так что это действительно не проблема
  • 0
    Можете ли вы добавить значения $row и $key['idklanten'] к вопросу?
Показать ещё 5 комментариев
0

Вы устанавливаете $ contact для пустой строки здесь:

else{$contact="";}

Что вы пытаетесь сделать в этом?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню