Почему foreach выводит вдвое больше результата - PullRequest
0 голосов
/ 10 июля 2020

У меня проблема с моим кодом, как сказано в заголовке, я получил вдвое больший результат. видел много тем об этом, но я не нашел своего конкретного решения. спасибо за помощь !!

<?php
foreach($liste_vol as $index =>$vol)
{

    $etape = 1;
    $liste_route = get_routeData($vol->idVol);
    $nb = count($liste_route) - 1;
    echo '<tr>
              <td><i class="fas fa-times"></i></a></td>
              <td>' . $liste_route[0]->dateDebut . '</td>
              <td>' . $liste_route[0]->OACIdep . '-' . $liste_route[$nb]->OACIarr . '</td>
              <td>' . $vol->dureeTrajet . '</td>
              <td> ' . $vol->immatAvion . '</td>
              <td>';
    foreach ($liste_route as $index2 => $route) {
        echo '<div> ' . $etape . ' ' . $route->OACIdep . '-' . $route->OACIarr . '</div>';
        $etape = $etape + 1;
    }
    echo '
         <td> ' . $vol->qualif . '</td>
         <td> ' . $vol->remarques . '</td></tr>';
}
?>

Я использую эту функцию для доступа к моей базе данных:

    function get_volData($idUser)
{
    $dbh = connexion();
    $tab = array();

    $sql = "SELECT DISTINCT * FROM vol JOIN avions ON vol.idAvion = avions.idAvion
       JOIN vuedureetrajet ON vol.idVol = vuedureetrajet.idVol WHERE idUser=:idUser ORDER BY vuedureetrajet.heureDep";
    $sth = $dbh->prepare($sql);
    $sth->bindParam(":idUser", $idUser, PDO::PARAM_INT);
    $sth->execute() or die(print_r($sth->errorInfo(), true));

    while( $result = $sth->fetch(PDO::FETCH_OBJ))
    {
        $tab[] = $result;
    }
$sth->closeCursor();
return $tab;

}

другая функция очень похожа и имеет тот же метод выборки

var_dump ($ liste_vol) возвращает:

array(4) { 
    [0]=> object(stdClass)#3 (9) { ["idVol"]=> string(1) "1" ["idUser"]=> string(1) "1" ["idAvion"]=> string(1) "1" ["qualif"]=> string(22) "vol aux instruments IR" ["remarques"]=> string(28) "Contournement orage sur Agen" ["typeAvion"]=> string(11) "CESSNA C172" ["immatAvion"]=> string(6) "D-EGCD" ["idCompagnie"]=> string(1) "6" ["dureeTrajet"]=> string(8) "03:15:00" } 
    [1]=> object(stdClass)#4 (9) { ["idVol"]=> string(1) "1" ["idUser"]=> string(1) "1" ["idAvion"]=> string(1) "1" ["qualif"]=> string(22) "vol aux instruments IR" ["remarques"]=> string(28) "Contournement orage sur Agen" ["typeAvion"]=> string(11) "CESSNA C172" ["immatAvion"]=> string(6) "D-EGCD" ["idCompagnie"]=> string(1) "6" ["dureeTrajet"]=> string(8) "03:15:00" } 
    [2]=> object(stdClass)#5 (9) { ["idVol"]=> string(2) "14" ["idUser"]=> string(1) "1" ["idAvion"]=> string(1) "1" ["qualif"]=> string(4) "test" ["remarques"]=> string(4) "test" ["typeAvion"]=> string(11) "CESSNA C172" ["immatAvion"]=> string(6) "D-EGCD" ["idCompagnie"]=> string(1) "6" ["dureeTrajet"]=> NULL } 
    [3]=> object(stdClass)#6 (9) { ["idVol"]=> string(2) "14" ["idUser"]=> string(1) "1" ["idAvion"]=> string(1) "1" ["qualif"]=> string(4) "test" ["remarques"]=> string(4) "test" ["typeAvion"]=> string(11) "CESSNA C172" ["immatAvion"]=> string(6) "D-EGCD" ["idCompagnie"]=> string(1) "6" ["dureeTrajet"]=> NULL } } 
...