IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher uniquement les prévisions des 2 derniers jours


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 20
    Points : 6
    Points
    6
    Par défaut Afficher uniquement les prévisions des 2 derniers jours
    Bonjour à tous

    Comment peut-on afficher uniquement les prévisions des 2 derniers jours,c-a-d

    celles du

    2013-12-06;Paris;matin;Brumeux;1;12;13;Temps Brumeux
    2013-12-06;Paris;Après_midi;ensoleillé;1;14;15;Temps Ensoleillé
    2013-12-06;Paris;nuit;Nuageux;4;9;11;Temps Nuageux

    et celle la
    2013-12-07;Paris;matin;Brumeux;1;12;13;Temps Brumeux
    2013-12-07;Paris;Après_midi;ensoleillé;2;14;15;Temps Ensoleillé
    2013-12-07;Paris;nuit;Nuageux;4;9;11;Temps Nuageux


    voici le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <?php
        $mysqli = new mysqli('localhost', 'root', '', 'projet_meteo');
        $mysqli->set_charset("utf8");
        if ($mysqli->connect_errno) 	{
            echo 'Echec de la connection' . $mysqli->connect_error;
            exit();
        }
     
        if (($handle = fopen("meteo.csv", "r")) !== FALSE) {
            while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
                $data_utf8=[];
    //            var_dump($data);
    //            die();
                foreach($data as $item_data){
                    $var=str_replace('é','e',$item_data);
                    $data_utf8[]=str_replace('è','e',$var);
                }
     
                $date = $data_utf8[0];
                $ville = $data_utf8[1];
                $periode = $data_utf8[2];
                $resume = $data_utf8[3];
                $id_resume = $data_utf8[4];
                $temp_min = $data_utf8[5];
                $temp_max = $data_utf8[6];
                $commentaire = $data_utf8[7];
     
                $mysqli->query('INSERT INTO meteo (day, ville, periode, resume, id_resume, temp_min, temp_max, commentaire) VALUES ("'. $date .'" , "'. $ville .'" ,"'. $periode .'" , "'. $resume .'" , "'. $id_resume .'" , "'. $temp_min .'" , "'. $temp_max .'" , "'. $commentaire .'")');
     
     
            }
     
        }
     
    ?>
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
    <table align="center" border="1px" style="width:1000px; line-height:40px">
        <tr>
            <th colspan="8"><h2>Prévisions météo sur Paris</h2></th>
        </tr>
     
        <t>
            <th>Date</th>
            <th>Ville</th>
            <th>Période</th>
            <th>Resumé</th>
            <th>ID résumé</th>
            <th>Temps minimum</th>
            <th>Temps Maximum</th>
            <th>Commentaire</th>
        </t>
        <tr>
            <td><?php echo $data_utf8[0];?></td>
            <td><?php echo $data_utf8[1];?></td>
            <td><?php echo $data_utf8[2];?></td>
            <td><?php echo $data_utf8[3];?></td>
            <td><?php echo $data_utf8[4];?></td>
            <td><?php echo $data_utf8[5];?></td>
            <td><?php echo $data_utf8[6];?></td>
            <td><?php echo $data_utf8[7];?></td>
        </tr>
    </table>
     
    </body>
    </html>
    fichier csv

    Code CSV : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    2013-12-05;Paris;matin;ensoleillé;1;5;8;Temps ensoleillé mais frais
    2013-12-05;Paris;Après_midi;Pluvieux;1;9;11;Une pluie fine est attendue
    2013-12-05;Paris;nuit;Nuageux;4;9;11;Temps Couvert
    2013-12-06;Paris;matin;Brumeux;1;12;13;Temps Brumeux
    2013-12-06;Paris;Après_midi;ensoleillé;1;14;15;Temps Ensoleillé
    2013-12-06;Paris;nuit;Nuageux;4;9;11;Temps Nuageux
    2013-12-07;Paris;matin;Brumeux;1;12;13;Temps Brumeux
    2013-12-07;Paris;Après_midi;ensoleillé;2;14;15;Temps Ensoleillé
    2013-12-07;Paris;nuit;Nuageux;4;9;11;Temps Nuageux



    Merci d'avance

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 453
    Points : 4 978
    Points
    4 978
    Par défaut
    Bonsoir,

    Il faut aussi gérer le nombre de jours négatif avec invert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    $le_08_12_2013=new DateTime('2013-12-08');
    if (($handle = fopen("meteo.csv", "r")) !== FALSE) {
    	while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    		foreach($data as $index=>$item_data){
    			if($index==0){
    				$dateC=new DateTime(str_replace("/","-",$item_data));
    				$diff=$le_08_12_2013->diff($dateC);
    				$diffDays=$diff->days;
    				//gérer la valeur négative avec ->invert
    				$diffDays=$diff->invert==0?-$diffDays:$diffDays;//si $diff->invert retourne 0 c'est que la différence est négative sinon elle est positive.
    				if(in_array($diffDays,[1,2])){
    					echo "diff :".$diffDays."<br />";
    					$data_utf8=[];
    					foreach($data as $item){
    						$var=str_replace('é','e',$item);
    						$data_utf8[]=str_replace('è','e',$var);
    					}	
    					$date = $data_utf8[0];
    					$ville = $data_utf8[1];
    					$periode = $data_utf8[2];
    					$resume = $data_utf8[3];
    					$id_resume = $data_utf8[4];
    					$temp_min = $data_utf8[5];
    					$temp_max = $data_utf8[6];
    					$commentaire = $data_utf8[7];
    					$mysqli->query('INSERT INTO meteo (day, ville, periode, resume, id_resume, temp_min, temp_max, commentaire) VALUES ("'. $date .'" , "'. $ville .'" ,"'
                                                                     . $periode .'" , "'. $resume .'" , "'. $id_resume .'" , "'. $temp_min .'" , "'. $temp_max .'" , "'. $commentaire .'")'
                                            );
    					echo "valeurs d'insertion :".$date." - ".$ville.' - '.$periode." - ".$resume." - ".$id_resume." - ".$temp_min." - ".$temp_max." - ".$commentaire."<br />";
    				}
     
    			}
    		}
    	}
    }

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    C'est tout ce qui me manquait pour le code.
    Merci beaucoup de l'aide cela m'a vraiment aidé.

    Très bonne journée

  4. #4
    Membre confirmé Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Points : 492
    Points
    492
    Par défaut
    Il faut créer un tableau qui stocke toutes les valeurs pour ensuite récupérer les 2 dernières dates.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    if (($handle = fopen("meteo.csv", "r")) !== FALSE) {
            while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
                $data_utf8=array();
    //            var_dump($data);
    //            die();
                foreach($data as $item_data){
                    $var=str_replace('é','e',$item_data);
                    $row[]=str_replace('è','e',$var);
     
     
                $date = $row[0];
                $ville = $row[1];
                $periode = $row[2];
                $resume = $row[3];
                $id_resume = $row[4];
                $temp_min = $row[5];
                $temp_max = $row[6];
                $commentaire = $row[7];
     
                $mysqli->query('INSERT INTO meteo (day, ville, periode, resume, id_resume, temp_min, temp_max, commentaire) VALUES ("'. $date .'" , "'. $ville .'" ,"'. $periode .'" , "'. $resume .'" , "'. $id_resume .'" , "'. $temp_min .'" , "'. $temp_max .'" , "'. $commentaire .'")');
     
                $data_utf8[] = $row;
            }
     
        }
    //on sait que les 2 derniers enregistrements comprennent 6 lignes, donc, les 6 derniers éléments de ton tableau $data_utf8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ...
    $tablo = array_slice($data_utf8, count($data_utf8)-6)
    foreach($tablo as $t):
    ?>
    <tr>
            <td><?php echo $t[0];?></td>
            <td><?php echo $t[1];?></td>
            <td><?php echo $t[2];?></td>
            <td><?php echo $t[3];?></td>
            <td><?php echo $t[4];?></td>
            <td><?php echo $t[5];?></td>
            <td><?php echo $t[6];?></td>
            <td><?php echo $t[7];?></td>
        </tr>
    <?php
    endforeach;
     
    ...
    Il faut mettre en place un script qui teste si les informations existent et le tour est joué

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Bonjour ,

    Cette solution marche bien aussi

    Merci de ta contribution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les données des 30 derniers jours de l'année
    Par ableur dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 12/02/2015, 10h31
  2. Réponses: 3
    Dernier message: 20/02/2014, 16h34
  3. Afficher uniquement les liens des sites autorisés
    Par diabli73 dans le forum SharePoint
    Réponses: 8
    Dernier message: 03/11/2010, 22h40
  4. Conserver uniquement les backups des 7 derniers jours
    Par MinsK dans le forum Scripts/Batch
    Réponses: 21
    Dernier message: 25/02/2009, 18h18
  5. Rechercher les documents des 7 derniers jours...
    Par titoumimi dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/03/2006, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo