bonjour à tous,

voilà j'ai un petit soucis avec un de mes php,

Son but et d'enregistrer toutes les 60 secondes des infos sur une BDD.

Lorsque'il s'agit d'un nouvel enregistrement il créer une nouvelle ligne dans la BDD et inscrit les premières données, ensuite lors d'un rajout sur cette enregistrement, il va cherche les infos sur cette premiéres lignes, les stock dans une variable, rajoute les nouvelle infos dans la variable et pour terminer met à jours la ligne dans la BDD.

Celà marche pas trop mal si ce n'est que après avoir créer une nouvelle ligne (ou enregistrement), à la premières vérification il ne voit pas qu'il à déjà créé cette ligne, et en refait une. Et ce qui me fait délirer c'est qu'il ne fait l'erreur qu'une fois, pourriez vous me dire ou j'ai pu me louper.

voici le script qui permet de lancer le php de manières cyclique, les timing et géré autre part..

<SCRIPT language="Javascript">

function alarme_track()
    {var request = $.ajax({
                            data:{idf:<?php echo $id_f; ?>},
                            url: "./site/membre/include/alarme_js/source/alarme_trac.php",
                            type: "GET",
                            dataType: "html"
                        });

    request.done(function(msg) {
                                $("#alarme_trac").html( msg );
                                });
        }

</script>

l'extrait du php farceur

///////rajout boite noire///////
                                        $result_scan_bb=0;
                                        $delay3 = date_create();
                                        date_modify($delay3, '-5 minutes');
                                        $delay3=date_format($delay3, 'Y-m-d H:i:s');
                                        /////////recherche vol en cours/////////
                                        $sql3 = "SELECT * FROM `tracker_cil_acarsdata` WHERE pilotid ='$id_cil_en' AND lastupdate > '$delay3' order by id DESC LIMIT 1";
                                        $req3 = $DBPDO ->query($sql3);
                                        while($data_cil=$req3->fetch(PDO::FETCH_OBJ))
                                            {
                                                $data1=$data_cil->lat.'*'.$data_cil->lng.'*'.$data_cil->heading.'*'.$data_cil->alt.'*'.$data_cil->gs;
                                                $flightnum=$data_cil->flightnum;
                                                $ident=$data_cil->id;
                                                $combi=$flightnum.'-'.$ident;
                                            }

                                        /////////recherche enregistrement dans les boites noires/////////
                                        $sql4 = "SELECT * FROM tracker_cil_black_box WHERE flight = '$combi'";
                                        $req4 = $DBPDO ->query($sql4);

                                        while($scan_bb=$req4->fetch(PDO::FETCH_OBJ)) 
                                            {
                                                $result_scan_bb=$result_scan_bb+1;
                                                $data2=$scan_bb->data;
                                            }

                                        if ($result_scan_bb==0)
                                            {

                                                /////////création d'un enregistrement dans la boite noire/////////
                                                $sql5 = "INSERT INTO `tracker_cil_black_box` VALUES ('', '$combi','$data1')" ;  
                                                $req5 = $DBPDO ->query($sql5);

                                            }
                                        if ($result_scan_bb==1)
                                            {
                                                $data=$data2.'$'.$data1;
                                                /////////MAJ d'un enregistrement dans la boite noire/////////       
                                                $sql6 = "UPDATE `tracker_cil_black_box` SET `data`='$data' WHERE `flight` = '$combi' LIMIT 1" ;
                                                $req6 = $DBPDO ->query($sql6);
                                                $sql7 = "SELECT * FROM `tracker_cil_black_box` WHERE flight ='$combi' ";
                                                $req7 = $DBPDO ->query($sql7);
                                                while($black_box=$req7->fetch(PDO::FETCH_OBJ))
                                                    {$data_black_box=explode('$', $black_box->data);}
                                                    $ligne_data_black_box = count($data_black_box);

                                                while ($ligne_count<$ligne_data_black_box)
                                                    {
                                                        if ($data_cache!=$data_black_box$ligne_count])
                                                            {
                                                                $data_black_box$ligne_count];

                                                                $data_clean_cache$ligne_clean_count_cache]=$data_black_box$ligne_count];
                                                                $ligne_clean_count_cache=$ligne_clean_count_cache+1;
                                                            }

                                                        $data_cache=$data_black_box$ligne_count];
                                                        $ligne_count=$ligne_count+1;
                                                    }

                                                $ligne_data_clean_cache = count($data_clean_cache);

                                                while ($ligne_clean_count<$ligne_data_clean_cache)
                                                    {
                                                        $data_clean=$data_clean.'$'.$data_clean_cache$ligne_clean_count];
                                                        $ligne_clean_count=$ligne_clean_count+1;
                                                    }
                                                $data_clean;
                                                $sql8 = "UPDATE `tracker_cil_black_box` SET `data`='$data_clean' WHERE `flight` = '$combi' LIMIT 1" ;
                                                $req8 = $DBPDO ->query($sql8);

                                            }
                                        ///////rajout boite noir///////

et juste au cas ou le php farceur complet.

<?php 
define('PROTECTIONINCLUDE', TRUE);
include ($_SERVER"DOCUMENT_ROOT"].'/config/bdall.php');
$timestamp = mktime();
$timestampred;
if (!isset($_GET"idf"])) 
    {echo '<div class="alert alert-danger">les données ne passent pas</div>';}
else
    { 

        $idf=$_GET"idf"];
        try{
                  $DBPDO = new PDO($dbdns1,$dbuser1 , $dbpass1,
                          array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                  $DBPDO-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
                  try{

                      /////////recherche des avions la table traker_cil__aircraft/////////
                      $sql2 = "SELECT idtc FROM `site_users` WHERE `idf` =$idf ";
                      $req2 = $DBPDO ->query($sql2);

                      while($id_cil=$req2->fetch(PDO::FETCH_OBJ)) 
                          {

                                $delay2 = date_create();
                                date_modify($delay2, '-1 minutes');
                                $delay2=date_format($delay2, 'Y-m-d H:i:s');

                                $id_cil_en=$id_cil->idtc;

                                $sql3 = "SELECT * FROM `tracker_cil_acarsdata` WHERE pilotid ='$id_cil_en' AND lastupdate > '$delay2' order by id DESC LIMIT 1";
                                $req3 = $DBPDO ->query($sql3);
                                while($data_cil=$req3->fetch(PDO::FETCH_OBJ))
                                    {
                                        if ($data_cil->phasedetail=="Embarquement"){echo '<div class="alert alert-warning">Bienvenue à bord commandant</div>';}
                                        elseif ($data_cil->phasedetail=="Repoussage"){echo '<div class="alert alert-warning">Repoussage en cours</div>';}
                                        elseif ($data_cil->phasedetail=="Roulage vers le point d'attente"){echo '<div class="alert alert-warning">Vous vous approchez du point d\'arrêt de la piste</div>';}
                                        elseif ($data_cil->phasedetail=="Décollage"){echo '<div class="alert alert-warning">Bon vol commandant</div>';}
                                        elseif ($data_cil->phasedetail=="Montée")
                                            {
                                                echo '<div class="alert alert-warning"><B>En montée selon les procedures que vous avez établies.</B><BR>';
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_cil->heading; echo '   Altitude: '; echo $data_cil->alt;
                                                echo '   ';
                                                echo ' Vitesse sol : ';echo $data_cil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_cil->timeremaining; echo '   Distance restante: '; echo $data_cil->distremain;
                                                echo'</div>';}
                                            elseif ($data_cil->phasedetail=="En palier")
                                            {
                                                echo '<div class="alert alert-warning"><B>Votre alitude est stable.</B><BR>';
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_cil->heading; echo '   Altitude: '; echo $data_cil->alt;
                                                echo '   ';
                                                echo ' Vitesse sol : ';echo $data_cil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_cil->timeremaining; echo '   Distance restante: '; echo $data_cil->distremain;
                                                echo'</div>';
                                            }
                                        elseif ($data_cil->phasedetail=="Croisière")
                                            {
                                                echo '<div class="alert alert-warning"><B>Vous avez atteint votre niveaux de croisiére.</B><BR>';
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_cil->heading; echo '   Altitude: '; echo $data_cil->alt;
                                                echo '   ';
                                                echo ' Vitesse sol : ';echo $data_cil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_cil->timeremaining; echo '   Distance restante: '; echo $data_cil->distremain;
                                                echo'</div>';
                                            }
                                        elseif ($data_cil->phasedetail=="Descente")
                                            {
                                                echo '<div class="alert alert-warning"><B>Descente en cours.</B><BR>';
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_cil->heading; echo '   Altitude: '; echo $data_cil->alt;
                                                echo '   ';
                                                echo ' Vitesse sol : ';echo $data_cil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_cil->timeremaining; echo '   Distance restante: '; echo $data_cil->distremain;
                                                echo'</div>';

                                            }
                                        elseif ($data_cil->phasedetail=="Approche"){echo '<div class="alert alert-warning"><B>Vous êtes sur les derniers instants de votre vol. Garder votre concentration</B></div>';}
                                        elseif ($data_cil->phasedetail=="Roulage vers la porte"){echo '<div class="alert alert-warning"><B>Bienvenue à l\'aéroport</B></div>';}
                                        elseif ($data_cil->phasedetail=="Débarquement"){echo '<div class="alert alert-warning"><B>Quel vol, vous pouvez maintenant enregistrer votre pirep</B></div>';}
                                        else{echo '<div class="alert alert-warning">activité sur enregistreur civil détecté</div>';}

                                        ///////rajout boite noire///////
                                        $result_scan_bb=0;
                                        $delay3 = date_create();
                                        date_modify($delay3, '-5 minutes');
                                        $delay3=date_format($delay3, 'Y-m-d H:i:s');
                                        /////////recherche vol en cours/////////
                                        $sql3 = "SELECT * FROM `tracker_cil_acarsdata` WHERE pilotid ='$id_cil_en' AND lastupdate > '$delay3' order by id DESC LIMIT 1";
                                        $req3 = $DBPDO ->query($sql3);
                                        while($data_cil=$req3->fetch(PDO::FETCH_OBJ))
                                            {
                                                $data1=$data_cil->lat.'*'.$data_cil->lng.'*'.$data_cil->heading.'*'.$data_cil->alt.'*'.$data_cil->gs;
                                                $flightnum=$data_cil->flightnum;
                                                $ident=$data_cil->id;
                                                $combi=$flightnum.'-'.$ident;
                                            }

                                        /////////recherche enregistrement dans les boites noires/////////
                                        $sql4 = "SELECT * FROM tracker_cil_black_box WHERE flight = '$combi'";
                                        $req4 = $DBPDO ->query($sql4);

                                        while($scan_bb=$req4->fetch(PDO::FETCH_OBJ)) 
                                            {
                                                $result_scan_bb=$result_scan_bb+1;
                                                $data2=$scan_bb->data;
                                            }

                                        if ($result_scan_bb==0)
                                            {

                                                /////////création d'un enregistrement dans la boite noire/////////
                                                $sql5 = "INSERT INTO `tracker_cil_black_box` VALUES ('', '$combi','$data1')" ;  
                                                $req5 = $DBPDO ->query($sql5);

                                            }
                                        if ($result_scan_bb==1)
                                            {
                                                $data=$data2.'$'.$data1;
                                                /////////MAJ d'un enregistrement dans la boite noire/////////       
                                                $sql6 = "UPDATE `tracker_cil_black_box` SET `data`='$data' WHERE `flight` = '$combi' LIMIT 1" ;
                                                $req6 = $DBPDO ->query($sql6);
                                                $sql7 = "SELECT * FROM `tracker_cil_black_box` WHERE flight ='$combi' ";
                                                $req7 = $DBPDO ->query($sql7);
                                                while($black_box=$req7->fetch(PDO::FETCH_OBJ))
                                                    {$data_black_box=explode('$', $black_box->data);}
                                                    $ligne_data_black_box = count($data_black_box);

                                                while ($ligne_count<$ligne_data_black_box)
                                                    {
                                                        if ($data_cache!=$data_black_box$ligne_count])
                                                            {
                                                                $data_black_box$ligne_count];

                                                                $data_clean_cache$ligne_clean_count_cache]=$data_black_box$ligne_count];
                                                                $ligne_clean_count_cache=$ligne_clean_count_cache+1;
                                                            }

                                                        $data_cache=$data_black_box$ligne_count];
                                                        $ligne_count=$ligne_count+1;
                                                    }

                                                $ligne_data_clean_cache = count($data_clean_cache);

                                                while ($ligne_clean_count<$ligne_data_clean_cache)
                                                    {
                                                        $data_clean=$data_clean.'$'.$data_clean_cache$ligne_clean_count];
                                                        $ligne_clean_count=$ligne_clean_count+1;
                                                    }
                                                $data_clean;
                                                $sql8 = "UPDATE `tracker_cil_black_box` SET `data`='$data_clean' WHERE `flight` = '$combi' LIMIT 1" ;
                                                $req8 = $DBPDO ->query($sql8);

                                            }
                                        ///////rajout boite noir///////

                                    }

                          }
                      /////////recherche desavions la table traker_cil__aircraft/////////
                      $sql2 = "SELECT idtm FROM `site_users` WHERE `idf` =$idf ";
                      $req2 = $DBPDO ->query($sql2);

                      while($id_mil=$req2->fetch(PDO::FETCH_OBJ)) 
                          {

                                $delay2 = date_create();
                                date_modify($delay2, '-1 minutes');
                                $delay2=date_format($delay2, 'Y-m-d H:i:s');

                                $id_mil_en=$id_mil->idtm;

                                $sql3 = "SELECT * FROM `tracker_mil_acarsdata` WHERE pilotid ='$id_mil_en' AND lastupdate > '$delay2' order by id DESC LIMIT 1";
                                $req3 = $DBPDO ->query($sql3);
                                while($data_mil=$req3->fetch(PDO::FETCH_OBJ))
                                    {
                                        if ($data_mil->phasedetail=="Embarquement"){echo '<div class="alert alert-warning">Bienvenue à bord commandant</div>';}
                                        elseif ($data_mil->phasedetail=="Repoussage"){echo '<div class="alert alert-warning">Repoussage en cours</div>';}
                                        elseif ($data_mil->phasedetail=="Roulage vers le point d'attente"){echo '<div class="alert alert-warning">Vous vous approchez du point d\'arrêt de la piste</div>';}
                                        elseif ($data_mil->phasedetail=="Décollage"){echo '<div class="alert alert-warning">Bon vol commandant</div>';}
                                        elseif ($data_mil->phasedetail=="Montée")
                                            {
                                                echo '<div class="alert alert-warning">En montée selon les procedures que vous avez établies.<BR>';
                                                echo '<BR>';
                                                echo ' Latitude: ';echo $data_mil->lat; echo '   Longitude: '; echo $data_mil->lng;
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_mil->heading; echo '   Altitude: '; echo $data_mil->alt;
                                                echo '<BR>';
                                                echo ' Vitesse sol : ';echo $data_mil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_mil->timeremaining; echo '   Distance restante: '; echo $data_mil->distremain;
                                                echo'</div>';}
                                            elseif ($data_mil->phasedetail=="En palier")
                                            {
                                                echo '<div class="alert alert-warning">Votre alitude est stable.<BR>';
                                                echo '<BR>';
                                                echo ' Latitude: ';echo $data_cil->lat; echo '   Longitude: '; echo $data_cil->lng;
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_cil->heading; echo '   Altitude: '; echo $data_cil->alt;
                                                echo '<BR>';
                                                echo ' Vitesse sol : ';echo $data_cil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_mil->timeremaining; echo '   Distance restante: '; echo $data_mil->distremain;
                                                echo'</div>';
                                            }
                                        elseif ($data_mil->phasedetail=="Croisière")
                                            {
                                                echo '<div class="alert alert-warning">Vous avez atteint votre niveaux de croisiére.<BR>';
                                                echo '<BR>';
                                                echo ' Latitude: ';echo $data_cil->lat; echo '   Longitude: '; echo $data_mil->lng;
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_cil->heading; echo '   Altitude: '; echo $data_mil->alt;
                                                echo '<BR>';
                                                echo ' Vitesse sol : ';echo $data_cil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_mil->timeremaining; echo '   Distance restante: '; echo $data_mil->distremain;
                                                echo'</div>';
                                            }
                                        elseif ($data_mil->phasedetail=="Descente")
                                            {
                                                echo '<div class="alert alert-warning">Descente en cours.<BR>';
                                                echo '<BR>';
                                                echo ' Latitude: ';echo $data_mil->lat; echo '   Longitude: '; echo $data_mil->lng;
                                                echo '<BR>';
                                                echo ' Cap: ';echo $data_mil->heading; echo '   Altitude: '; echo $data_mil->alt;
                                                echo '<BR>';
                                                echo ' Vitesse sol : ';echo $data_mil->gs;echo '&nbspKts'; echo '   Temps restant: '; echo $data_mil->timeremaining; echo '   Distance restante: '; echo $data_mil->distremain;
                                                echo'</div>';

                                            }
                                        elseif ($data_mil->phasedetail=="Approche"){echo '<div class="alert alert-warning">Vous êtes sur les derniers instants de votre vol. Garder votre concentration</div>';}
                                        elseif ($data_mil->phasedetail=="Roulage vers la porte"){echo '<div class="alert alert-warning">Bienvenue à l\'aéroport</div>';}
                                        elseif ($data_mil->phasedetail=="Débarquement"){echo '<div class="alert alert-warning">Quel vol, vous pouvez maintenant enregistrer votre pirep</div>';}
                                        else{echo '<div class="alert alert-warning">activité sur enregistreur civil détecté</div>';}

                                    }

                          }
                    }
                catch (PDOException $e) {echo "merde req";}

            }
        catch (PDOException $e){echo "merde bd";}

    }
?>

merci d'avance pour votre aide

Flo

1 réponse


Bonjour

while($data_cil=$req3->fetch(PDO::FETCH_OBJ))
                                            {
                                                $data1=$data_cil->lat.'*'.$data_cil->lng.'*'.$data_cil->heading.'*'.$data_cil->alt.'*'.$data_cil->gs;
                                                $flightnum=$data_cil->flightnum;
                                                $ident=$data_cil->id;
                                                $combi=$flightnum.'-'.$ident;
                                            }

ça renvoit qu'un seul résultat forcément?

Debut la variable $result_scan_bb avant, dedans et après ce while.. affiche aussi les données pour comprendre ce qu'il se passe :

while($scan_bb=$req4->fetch(PDO::FETCH_OBJ)) 
                                            {
                                                $result_scan_bb=$result_scan_bb+1;
                                                $data2=$scan_bb->data;

                                            }