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

PHP & Base de données Discussion :

changement de script suite à passage à PHP7


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut changement de script suite à passage à PHP7
    Bien le bonjour.
    J'ai, entre autres, un site de météorologie en amateur. J'ai 69 ans et c'est un peu mon petit plaisir. http://meteo.quetigny.thierry-renault.fr
    Je suis hébergé par One and one. et il s'agit d'un sous-domaine inclus dans mon domaine.
    Depuis début 2019, One and one ne gère plus les versions PHP inférieures à PhP7.
    J'ai donc pris mon bâton de pèlerin et j'ai repris tous mes scripts dans mon FTP pour pouvoir me loguer dans les nouvelles conditions.
    J'ai pas mal travaillé (je sais, je m'auto-congratule.. ) et en passant à la version Php7 mon site est maintenant visible.
    Ma difficulté est de transférer les données récupérées en .txt sur mon site domotique Jeedom via un RfxCom en direct de la station météo qui est dans mon jardin.
    Pour mieux me faire comprendre, je vous montre le script d'envoi des données d'une part, et le résultat avec les erreurs sur le site par lui-même.

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    <title>OK</title>
    <?php
    //0 on affiche au besoin les erreurs
     
    error_reporting(-1);
     
    // 1 on connecte a mysqli
    $hostname_relit = "xxxx.fr"; //serveur de base mysqli
    $database_relit = "dbxxx"; // nom de la base
    $username_relit = "dboxxx"; // utilisateur
    $password_relit = "xxx"; // mot de passe
     
    $relit = mysqli_connect($hostname_relit, $username_relit, $password_relit); 
     
    mysqli_select_db($relit, $database_relit);
     if (mysqli_connect_errno()) {
        die('<p>La connexion au serveur MySQLi a échoué: '.mysqli_connect_error().'</p>');
    } else {
        echo '<p>Connexion au serveur MySQLi etablie avec succes</p >';
    }
     
    //2 on verifie le fuseau et on affiche quelques infos
    date_default_timezone_set('Europe/Belgrade');
    echo "Météo de Quetigny<br>";
    echo "Script d'upload des donnees<br>";
    $today = date("d/m/Y");
    $heure = date("H:i");
     
    //3 on traite l'info du fichier txt
     
        $today = date("y/m/d");
    	$context = stream_context_create(array('http' => array('header'=>'Connection: close'))); 
    	$contents30 = file_get_contents("http://meteo.quetigny.thierry-renault.fr/meteoquetignysup.txt",false,$context); 
        $contents30 = file_get_contents("http://meteo.quetigny.thierry-renault.fr/meteoquetignysup.txt"); // Récupération du contenu du fichier dans une variable3
        $erreur=array("t=","&v0=","&v1=","&v2=","&v3=","&v4=","&v5=","&v6=","&v7=","&v8=","&v9=","&v10=","&v11=","&v12=","&v13=","&v14=","&v15=","&v16=","&v17=","&v18=","&v19=","&v20=","&v21=","&v22=","&v23=","&v24=","&v25=","&v26=","&v27=","&v28=","&v29=","&v30=", "&", "ÿ", "mn1=", "mn2=", "mx1=", "mx2=", "mx3=");
     
    	$correction = str_replace($erreur, "*" , $contents30);
        $tabContents30 = explode('&', $contents30);
    	echo "<br>-----------------<br>Valeur pour expedition :<br>";
    	echo $correction;
    	echo $tabContents30;
        $tabContents30 = explode(' ', contents30);
    	$date=$tabContents30[7];
     
    	$date1=$tabContents30[7];
    	$date1=explode(' ', $date);
     
    	$date=$date1[0];
    	$heure = $date1[1];
     
     
        $tabContents3 = explode('*', $contents30); // Transformation de la variable en tableau
      print_r ($tabContents3);
    $na = array("NA", "N/A");
    $valeurs = array("", "");
    $tabContents30 = str_replace($na, $valeurs, $tabContents3);
     //print_r ($tabContents30); 
     
     // envoi sur base mysqli
     
    //mysqli_select_db($database_relit, $relit);
    $select_sqli = "SELECT * FROM meteo ORDER BY id DESC LIMIT 1";
    $Record_quetigny = mysqli_query($relit, $select_sqli);
    //$Record_quetigny = mysqli_query($select_sqli, $relit) or die(mysqli_error());
    $row_Record_quetigny= mysqli_fetch_assoc($Record_quetigny);
    $totalRows_Record_quetigny = mysqli_num_rows($Record_quetigny); 
    //print_r ($row_Record_quetigny);
    //echo $row_Record_quetigny;
     
    echo "<br>-----------------<br>Resultat :<br>";
     
       // if  ($row_Record_quetigny['time'] == $tabContents30[1]) Stock
       $octet=filesize("meteoquetignysup.txt"); 
     
     
     
       if  ($tabContents30[2] == '')
        {
    	echo "ARRET VIDE !<br>";
    	}
       else
     
      {  
     
    	$date=$tabContents30[0];
     
    	$d = "0"; //strcmp ($today, $date)
     
    	 if ($d=='0')
    	 {
    	  ($style="");
    	  $date=$tabContents30[0];
    	  $time=$tabContents30[1];
    	$temp=$tabContents30[2];
    	$humidite=$tabContents30[3];
    	$baro=$tabContents30[4];
    	$windspeed=$tabContents30[5];
    	$winddirect=$tabContents30[6];
    	$rainrate=$tabContents30[7];
    	$dailyrain=$tabContents30[8];
        if ($dailyrain == "" ) {($dailyrain = $rainrate);}
    //	if ($dailyrain == "" ) {($dailyrain = $row_Record_quetigny['dailyrain']);}
    	$monthrain=$tabContents30[9];
    	$intemp=$tabContents30[10];
    	$inhumidite=$tabContents30[11];
    	$rafale=$tabContents30[12];
    	$uv=$tabContents30[13];
    	$rose=$tabContents30[14];
     
     
     
     
     
     
     
    $insertSQLi = printf("INSERT INTO meteo (datjour, heur, date, time, temp, humidite, baro, windspeed, winddirect, rainrate, dailyrain, monthrain, intemp, inhumidite, rafale, uv, rose) VALUES ('$date','$time', CURRENT_DATE, UNIX_TIMESTAMP(), '$temp', '$humidite', '$baro', '$windspeed', '$winddirect', '$rainrate', '$dailyrain', '$monthrain', '$intemp', '$inhumidite', '$rafale', '$uv', '$rose')"); //si erreur changé fin par '$uv;')");
    echo  $insertSQLi;
    echo "Nouvelle Ecrire";
     
      $Result1 = mysqli_query($relit, $insertSQLi);	
     
      //$Result1 = mysqli_query($insertSQLi, $relit) or die(mysqli_error());	
     
      }
     
     
    else	
    echo "ATTENTION, Aucune ecriture effectuer<br>";
    echo $today;
    echo "<br>";
    echo $date;
    	($style="none");
     
      }
    mysqli_close($relit);
    // <meta http-equiv="refresh" content="900;url=http://meteo.quetigny.thierry-renault.fr/ecriremeteoquetigny.php" /> 
    ?>
    --------------------------

    et le résultat sur le site :
    ---------------------------
    Connexion au serveur MySQLi etablie avec succes

    Mito de Quetigny
    Script d'upload des données

    -----------------
    Valeur pour expédition:
    20/01/19 * 06h27 * 0.3 * 92.0 * 1014.0 * 0 * 337 * 754.2 * 0 * 6 * 0.0 * 0.0 * 0 * 0 * 0
    Avis : Conversion de tableau en chaînes dans /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php à la ligne 41
    Tableau
    Avertissement : Utilisation de constante non définie contents30 - supposé 'contenu30' (cela posera une erreur dans une future version de PHP) dans /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php en ligne 42

    Remarque : décalage non défini : 7 in / homepages / 13 /d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php en ligne43

    Remarque : Undefined offset: 7 à /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php sur la ligne 45

    Indication : Undefined offset: 1 à /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php à la ligne 49
    Tableau ([0] => 20/01/19 [1] => 06h27 [2] => 0,3 [3] => 92,0 [4] => 1014,0 [5] => 0 [6] => 337 [7] => 754.2 [8] => 0 [9] => 6 [10] => 0.0 [11] => 0.0 [12] => 0 [13] => 0 [14] => 0)
    -----------------
    Résultat:
    INSERER AU MÉTÉO (date, heure, température, humidité, vitesse du vent, direction du vent, vitesse du vent, train quotidien, mois, intemp, inhumidite, rafale, uv, rose) VALEURS ('20 / 01/19 ',' 06h27 ', CURRENT_DATE, UNIX_TIMESTAMP (),' 0.3 ', '92.0', '1014.0', '0', '337', '754.2', '0', '6', '0.0', '0.0', '0.0', '0 ',' 0 ',' 0 ') 305Nouvelle Ecrire19 / 01/20 20/01/19

    Si vous avez une piste, je serais ravi.

    Bonne soirée à tous.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Dans l'ordre :
    Avis : Conversion de tableau en chaînes dans /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php à la ligne 41
    Correspond à cette ligne :
    Tu fais un echo sur un tableau, ce qui force php à convertir le tableau en chaine (et tu vas te retrouver avec l'affichage fort peu utile de "Array")Utilise plutôt print_r ou une boucle

    Avertissement : Utilisation de constante non définie contents30 - supposé 'contenu30' (cela posera une erreur dans une future version de PHP) dans /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php en ligne 42
    Correspond à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $tabContents30 = explode(' ', contents30);
    Tu as visiblement perdu le $ devant $contents30. Du coup, PHP utilise la chaine "contents30" comme valeur à exploser, ce qui fait que ton tableau $tabContents30 va contenir une seule valeur et provoquer les erreurs suivantes.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut merci de ta réponse
    Mille mercis de cette réponse.
    J'ai modifié le bout de script en question. J'ai remplacé mon echo $tabContents30; par print_r ($tabContents30); à la ligne 41
    j'ai remplacé contents30); par $contents30); à la ligne 42.

    Cela s'arrange un peu car j'obtiens sur mon site en envoyant le script :
    ----------------------------------
    Connexion au serveur MySQLi etablie avec succes

    M�t�o de Quetigny
    Script d'upload des donnees

    -----------------
    Valeur pour expedition :
    21/01/19*05h32*-0.5*93.0*1020.0*3.6*45*755.2*0*7*0.0*0.0*4.68*0*-1Array ( [0] => 21/01/19*05h32*-0.5*93.0*1020.0*3.6*45*755.2*0*7*0.0*0.0*4.68*0*-1 )
    Notice: Undefined offset: 7 in /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php on line 43

    Notice: Undefined offset: 7 in /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php on line 45

    Notice: Undefined offset: 1 in /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php on line 49
    Array ( [0] => 21/01/19 [1] => 05h32 [2] => -0.5 [3] => 93.0 [4] => 1020.0 [5] => 3.6 [6] => 45 [7] => 755.2 [8] => 0 [9] => 7 [10] => 0.0 [11] => 0.0 [12] => 4.68 [13] => 0 [14] => -1 )
    -----------------
    Resultat :
    INSERT INTO meteo (datjour, heur, date, time, temp, humidite, baro, windspeed, winddirect, rainrate, dailyrain, monthrain, intemp, inhumidite, rafale, uv, rose) VALUES ('21/01/19','05h32', CURRENT_DATE, UNIX_TIMESTAMP(), '-0.5', '93.0', '1020.0', '3.6', '45', '755.2', '0', '7', '0.0', '0.0', '4.68', '0', '-1')311Nouvelle Ecrire19/01/21
    21/01/19

    --------------------------------
    Les
    Notice: Undefined offset:

    correspondent probablement à des erreurs en ce qui concerne la date et l'heure dans ma base de données (enfin, en ayant fouillé un peu, c'est ce que je pense) suite au passage à PhP7 (??????)

    J'ai vu que dans cette base, j'avais attribué le type TEXT à heure et date....

    Ou bien, je n'ai pas le bon ordre dans la liste des éléments de la base... pourtant je n'ai rien modifié.

    j'ai synthétisé ma base de données ainsi afin de rapprocher la base pour expédition et voir où est l'erreur...
    21/01/19 [1] =>datjour, 05h32 [2] =>heur(heure), -0.5 [3] =>temp(température), 93.0 [4] =>humidite(humidité), 1020.0 [5] =>baro(pression atmosphérique), 3.6 [6] =>windspeed(vitesse du vent), 45 [7] =>winddirect(direction du vent), 755.2 [8] =>rainrate(pluie 1h), 0 [9] =>dailyrain(pluie du jour), 7 [10] =>monthrain(pluie du mois), 0.0 [11] =>intemp, 0.0(temp intérieure) [12] =>inhumidite(humidité intérieure), 4.68 [13] =>rafale(rafalevent), 0 [14] =>uv(UV),

    Est-ce que c'est dans cette direction que je dois chercher ou bien je suis complètement perdu ?

    En tous cas, merci encore d'avoir bien voulu me donner un coup de main.
    Bien cordialement.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Notice: Undefined offset: 7 in /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php on line 43

    Notice: Undefined offset: 7 in /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php on line 45
    Correspond aux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $date=$tabContents30[7]; //43
     
    $date1=$tabContents30[7]; //45
    Basiquement, ça veut dire que $tabContents30 ne contient pas d'élément n°7 (au passage tu as deux variables pour la même valeur là... )

    Si tu regardes bien ton code, tu verras qu'il y a des chose bizarres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $correction = str_replace($erreur, "*" , $contents30); // ici tu renseignes $correction que tu n'utilises jamais
    $tabContents30 = explode('&', $contents30); // ici tu renseignes $tabContents30 à partir de $contents30
    echo "<br>-----------------<br>Valeur pour expedition :<br>";
    echo $correction;
    echo $tabContents30;
    $tabContents30 = explode(' ', $contents30); // ici tu écrases $tabContents30 à partir de $contents30, mais avec un explode différent
    $date=$tabContents30[7];
     
    $date1=$tabContents30[7]; // $date1 contient la même chose que $date
    Donc la question n°1 c'est : que contient $contents30 au début ? Et ensuite, il faut nettoyer un peu ton code pour faire les bons explode().
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    Merci encore de ta grande patience.
    J'ai "bricolé" un peu dans tous les sens et j'ai ainsi transformé mon script :

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    <title>OK</title>
    <?php
    //0 on affiche au besoin les erreurs
     
    error_reporting(-1);
     
    // 1 on connecte a mysqli
    $hostname_relit = "dbxxxx.fr"; //serveur de base mysqli
    $database_relit = "dbxxxxx"; // nom de la base
    $username_relit = "dboxx"; // utilisateur
    $password_relit = "xxx"; // mot de passe
     
    $relit = mysqli_connect($hostname_relit, $username_relit, $password_relit); 
     
    mysqli_select_db($relit, $database_relit);
     if (mysqli_connect_errno()) {
        die('<p>La connexion au serveur MySQLi a échoué: '.mysqli_connect_error().'</p>');
    } else {
        echo '<p>Connexion au serveur MySQLi etablie avec succes</p >';
    }
     
    //2 on verifie le fuseau et on affiche quelques infos
    date_default_timezone_set('Europe/Belgrade');
    echo "Météo de Quetigny<br>";
    echo "Script d'upload des donnees<br>";
    $today = date("d/m/Y");
    $heure = date("H:i");
     
    //3 on traite l'info du fichier txt
     
        $today = date("y/m/d");
    	$context = stream_context_create(array('http' => array('header'=>'Connection: close'))); 
    	$contents30 = file_get_contents("http://meteo.quetigny.thierry-renault.fr/meteoquetignysup.txt",false,$context); 
        $contents30 = file_get_contents("http://meteo.quetigny.thierry-renault.fr/meteoquetignysup.txt"); // Récupération du contenu du fichier dans une variable3
        $erreur=array("t=","&v0=","&v1=","&v2=","&v3=","&v4=","&v5=","&v6=","&v7=","&v8=","&v9=","&v10=","&v11=","&v12=","&v13=","&v14=","&v15=","&v16=","&v17=","&v18=","&v19=","&v20=","&v21=","&v22=","&v23=","&v24=","&v25=","&v26=","&v27=","&v28=","&v29=","&v30=", "&", "ÿ", "mn1=", "mn2=", "mx1=", "mx2=", "mx3=");
     
     
        $tabContents30 = explode('&', $contents30);
    	echo "<br>-----------------<br>Valeur pour expedition :<br>"; 
     
    	print_r ($tabContents30) ;
        $tabContents30 = explode('&', $contents30);
    	$date=$tabContents30[0];
     
    	$date1=$tabContents30[0];
    	$date1=explode(' ', $date);
     
    	$date=$date1[0];
    	$heure = $date1[0];
     
     
        $tabContents30 = explode('*', $contents30); // Transformation de la variable en tableau
      print_r ($tabContents30);
    $na = array("NA", "N/A");
    $valeurs = array("", "");
    $tabContents30 = str_replace($na, $valeurs, $tabContents30);
     //print_r ($tabContents30); 
     
     // envoi sur base mysqli
     
    //mysqli_select_db($database_relit, $relit);
    $select_sqli = "SELECT * FROM meteo ORDER BY id DESC LIMIT 1";
    $Record_quetigny = mysqli_query($relit, $select_sqli);
    //$Record_quetigny = mysqli_query($select_sqli, $relit) or die(mysqli_error());
    $row_Record_quetigny= mysqli_fetch_assoc($Record_quetigny);
    $totalRows_Record_quetigny = mysqli_num_rows($Record_quetigny); 
    //print_r ($row_Record_quetigny);
    //echo $row_Record_quetigny;
     
    echo "<br>-----------------<br>Resultat :<br>";
     
       // if  ($row_Record_quetigny['time'] == $tabContents30[1]) Stock
       $octet=filesize("meteoquetignysup.txt"); 
     
     
     
       if  ($tabContents30[2] == '')
        {
    	echo "ARRET VIDE !<br>";
    	}
       else
     
      {  
     
    	$date=$tabContents30[0];
     
    	$d = "0"; //strcmp ($today, $date)
     
    	 if ($d=='0')
    	 {
    	  ($style="");
    	  $date=$tabContents30[0];
    	  $time=$tabContents30[1];
    	$temp=$tabContents30[2];
    	$humidite=$tabContents30[3];
    	$baro=$tabContents30[4];
    	$windspeed=$tabContents30[5];
    	$winddirect=$tabContents30[6];
    	$rainrate=$tabContents30[7];
    	$dailyrain=$tabContents30[8];
        if ($dailyrain == "" ) {($dailyrain = $rainrate);}
    //	if ($dailyrain == "" ) {($dailyrain = $row_Record_quetigny['dailyrain']);}
    	$monthrain=$tabContents30[9];
    	$intemp=$tabContents30[10];
    	$inhumidite=$tabContents30[11];
    	$rafale=$tabContents30[12];
    	$uv=$tabContents30[13];
    	$rose=$tabContents30[14];
     
     
     
     
     
     
     
    $insertSQLi = printf("INSERT INTO meteo (datjour, heur, date, time, temp, humidite, baro, windspeed, winddirect, rainrate, dailyrain, monthrain, intemp, inhumidite, rafale, uv, rose) VALUES ('$date','$time', CURRENT_DATE, UNIX_TIMESTAMP(), '$temp', '$humidite', '$baro', '$windspeed', '$winddirect', '$rainrate', '$dailyrain', '$monthrain', '$intemp', '$inhumidite', '$rafale', '$uv', '$rose')"); //si erreur changé fin par '$uv;')");
    echo  $insertSQLi;
    echo "Nouvelle Ecrire";
     
      $Result1 = mysqli_query($relit, $insertSQLi)	or die(mysqli_connect_error());
     
      //$Result1 = mysqli_query($insertSQLi, $relit) or die(mysqli_error());	
     
      }
     
     
    else	
    echo "ATTENTION, Aucune ecriture effectuer<br>";
    echo $today;
    echo "<br>";
    echo $date;
    	($style="none");
     
      }
    mysqli_close($relit);
    // <meta http-equiv="refresh" content="900;url=http://meteo.quetigny.thierry-renault.fr/ecriremeteoquetigny.php" /> 
    ?>

    --------------------------------

    Et suite à cela, le résultat sur mon site est :

    Connexion au serveur MySQLi etablie avec succes

    M�t�o de Quetigny
    Script d'upload des donnees

    -----------------
    Valeur pour expedition :
    Array ( [0] => 22/01/19*08h17*-1*85.0*1003.0*7.2*180*755.2*0*7*0.0*0.0*7.92*0*-2 ) Array ( [0] => 22/01/19 [1] => 08h17 [2] => -1 [3] => 85.0 [4] => 1003.0 [5] => 7.2 [6] => 180 [7] => 755.2 [8] => 0 [9] => 7 [10] => 0.0 [11] => 0.0 [12] => 7.92 [13] => 0 [14] => -2 )
    -----------------
    Resultat :
    INSERT INTO meteo (datjour, heur, date, time, temp, humidite, baro, windspeed, winddirect, rainrate, dailyrain, monthrain, intemp, inhumidite, rafale, uv, rose) VALUES ('22/01/19','08h17', CURRENT_DATE, UNIX_TIMESTAMP(), '-1', '85.0', '1003.0', '7.2', '180', '755.2', '0', '7', '0.0', '0.0', '7.92', '0', '-2')310Nouvelle Ecrire

    ---------------------------
    Rien ne se passe dans ma base de données et pourtant je ne vois plus d'erreur.
    J'avoue être vraiment très perplexe.

    Voici comment se présente la structure de ma base de données

    Nom : base1.jpg
Affichages : 304
Taille : 241,2 Ko

    Peut-être que cela a un rapport avec CURRENT_DATE, UNIX_TIMESTAMP ??

    Mille mercis encore
    et très bonne soirée.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu as peut-être une erreur, mais tu n'utilises pas la bonne fonction pour l'afficher : c'est mysqli_error et non mysqli_connect_error :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Result1 = mysqli_query($relit, $insertSQLi)	or die(mysqli_error());
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    De fait, en corrigeant le script, j'obtiens sur mon site :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Connexion au serveur MySQLi etablie avec succes
     
    M�t�o de Quetigny
    Script d'upload des donnees
     
    -----------------
    Valeur pour expedition :
    Array ( [0] => 23/01/19*01h17*2.8*91.0*994.0*4.68*292*755.2*0*7*0.0*0.0*5.04*2*0 ) Array ( [0] => 23/01/19 [1] => 01h17 [2] => 2.8 [3] => 91.0 [4] => 994.0 [5] => 4.68 [6] => 292 [7] => 755.2 [8] => 0 [9] => 7 [10] => 0.0 [11] => 0.0 [12] => 5.04 [13] => 2 [14] => 0 ) 
    -----------------
    Resultat :
    INSERT INTO meteo (datjour, heur, date, time, temp, humidite, baro, windspeed, winddirect, rainrate, dailyrain, monthrain, intemp, inhumidite, rafale, uv, rose) VALUES ('23/01/19','01h17', CURRENT_DATE, UNIX_TIMESTAMP(), '2.8', '91.0', '994.0', '4.68', '292', '755.2', '0', '7', '0.0', '0.0', '5.04', '2', '0')310Nouvelle Ecrire
    Warning: mysqli_error() expects exactly 1 parameter, 0 given in /homepages/13/d296151995/htdocs/meteo.quetigny/ecriremeteoquetigny.php on line 123

    et j'ai beau fouiller je ne vois pas comment corriger mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_error() expects exactly 1 parameter, 0 given in
    J'ai bien compris qu'on attendait un paramètre, mais je ne vois pas lequel.....

    Merci de votre patience.
    Bonne journée.

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    ah oups, il manque le paramètre de la connexion (on a toujours l'air bête quand c'est la fonction qui sert à détecter les erreurs qui provoque l'erreur )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($relit, $insertSQLi)	or die(mysqli_error($relit));
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    ahhhhh....... l'âge n'arrange pas les choses
    Alors c'est "presque" réparé ! J'ai juste une erreur que je ne parviens pas à maîtriser en ce qui concerne la syntaxe sqli.

    j'ai maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Connexion au serveur MySQLi etablie avec succes
     
    Mito de Quetigny 
    Script d' envoi des données 
     
    ----------------- 
    Valeur pour expédition: 
    Array ([0] => 23/01/19 * 03h57 * 1.5 * 87.0 * 995.0 * 5.76 * 337 * 756.2 * 0 * 8 * 0.0 * 0.0 * 6.48 * 2 * -1) Tableau ([0] => 23/01/19 [1] => 03h57 [2] => 1,5 [3] => 87.0 [4] => 995.0 [5] => 5.76 [6] => 337 [7] => 756.2 [8] => 0 [9] => 8 [10] => 0.0 [11] ] => 0.0 [12] => 6.48 [13] => 2 [14] => -1) 
    ----------------- 
    Résultat:
    INSERER DANS le meteo (date, heure, date, heure, température, humidité, vitesse du vent, vitesse du vent, vitesse du vent, train quotidien, mois, intemp, inhumidite, rafale, uv, rose) VALEURS ('23 / 01/19 ',' 03h57 ', CURRENT_DATE, UNIX_TIMESTAMP (),' 1.5 ', '87.0,' '995.0', '5.76', '337', '756.2', '0', '8', '0.0', '0.0', '0.0', '6.48 ',' 2 ',' -1 ') 311Nouvelle EcrireVous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de "311" à la ligne 1.
    Je suis désolé d'être aussi "boulet"...

    Je pense qu'on n'est pas loin du but .. non ???

    Trente six mille mercis encore !

  10. #10
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    Je remarque que quand je fais un rafraîchissement le chiffre change...
    Ainsi, tout de suite, j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vérifiez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de '313' à la ligne 1
    Je ne vois malheureusement pas à quoi cela correspond.......

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu as un truc de traduction automatique sur ta page ? parce que ça traduit aussi le code SQL, ce qui n'est pas exactement une bonne idée

    Bon basiquement, ce que le message d'erreur te dit, c'est que la requête est incorrect, et que ça plante au niveau de "313" à l'intérieur de la requête en question. Le truc c'est de trouver où est le 313, et de résoudre le problème. En général, c'est un souci de quote/virgule/parenthèse manquante/en trop/mal placée.

    En l’occurrence, le problème vient du fait que tu utilise printf pour construire ta requête. printf ne retourne pas la chaine formatée, printf affiche la chaine et retourne la longueur.
    Donc en fait dans $insertSQLi tu as la longueur de ta chaine
    Ce que tu dois utiliser c'est sprintf (ou alors directement la chaine)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    ouiiiiiiiiiiiiiiiiiii
    ça maaaaaarche !!!
    Et la base de données s'est enclenché toutes les 5 minutes, ainsi que je j'ai programmé.
    Toutes les données météorologiques sont ainsi préservées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Connexion au serveur MySQLi etablie avec succes
     
    M�t�o de Quetigny
    Script d'upload des donnees
     
    -----------------
    Valeur pour expedition :
    Array ( [0] => 24/01/19*02h47*-0.8*80.0*1011.0*7.92*337*756.2*0*8*0.0*0.0*13.32*1*-5 ) Array ( [0] => 24/01/19 [1] => 02h47 [2] => -0.8 [3] => 80.0 [4] => 1011.0 [5] => 7.92 [6] => 337 [7] => 756.2 [8] => 0 [9] => 8 [10] => 0.0 [11] => 0.0 [12] => 13.32 [13] => 1 [14] => -5 ) 
    -----------------
    Resultat :
    INSERT INTO meteo (datjour, heur, date, time, temp, humidite, baro, windspeed, winddirect, rainrate, dailyrain, monthrain, intemp, inhumidite, rafale, uv, rose) VALUES ('24/01/19','02h47', CURRENT_DATE, UNIX_TIMESTAMP(), '-0.8', '80.0', '1011.0', '7.92', '337', '756.2', '0', '8', '0.0', '0.0', '13.32', '1', '-5')Nouvelle Ecrire19/01/24
    24/01/19
    Je suis très content et je te remercie très vivement de ces bons conseils qui me font progresser dans mes petites connaissances.

    Maintenant, je dois régler la traduction de cette base de données en visibilité sur mon site.
    je suis dans les tableaux avec "highcharts", et je vois que je n'ai plus la transcription, comme je l'avais en php5

    Je dois aller fouiller plus avant ou bien trouver un autre système. Mais je crois que c'est une autre histoire. A moins que tu n'en ai entendu parler....

    En tous cas, je te remercie encore avec beaucoup de sincérité.

    Bon après-midi

    merciiiiiiiiiii.

  13. #13
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    En fait, je crois que c'est encore un problème de changement de langage de mysql à mysqli suite au passage à Php7

    voici mes scripts :

    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
    <!DOCTYPE HTML>
    <?php 
    date_default_timezone_set('Europe/Belgrade');
     
    // on se connecte à MySQLi 
    $db = mysqli_connect('dbxxx', 'dboxxx', 'xxx'); 
     
     
     
    // on cree la requête SQLi 
     
    $sqli = "select time as datetime, temp,datjour,baro,dailyrain,humidite,windspeed,rafale from meteo WHERE curdate() = date";
    $result = mysqli_query($sqli);
    $data = array();
    while ($row = mysqli_fetch_array($result)) {
       extract($row);
       $datum = date("d-m-Y");
       // $datetime += 3600; // Ajout de 1heure ! (Hiver)
       $datetime += 3600; // Ajout de 1heure ! (été)
       $datetime *= 1000; // convert from Unix timestamp to JavaScript time
     
    $datatemp[] = "[$datetime, $temp]";
    $datapluie[] = "[$datetime, $dailyrain]";
    $datahygro[] = "[$datetime, $humidite]";
    $datapression[] = "[$datetime, $baro]";
    $datawind[] = "[$datetime, $windspeed]";
    $dataraf[] = "[$datetime, $rafale]";
     
     
    $Result = mysqli_query($relit, $insert_sqli)	or die(mysqli_error($relit));  
    }
     
    mysqli_close();
    ?>

    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
    <!DOCTYPE HTML>
    <html>
    <?php 
    date_default_timezone_set('Europe/Belgrade');
    // on se connecte à MySQLi 
    $db = mysqli_connect('xxx', 'xxx', 'xxx'); 
     
    // on selectionne la base 
    mysqli_select_db('dbxxx',$db); 
     
    // on cree la requête SQLi 
     
    $sqlite = "select time as datetime, temp,datjour,baro,dailyrain,humidite,winddirect,windspeed,rafale from meteo WHERE curdate() = date";
    $result = mysqli_query($sql);
    $data = array();
    while ($row = mysqli_fetch_array($result)) {
       extract($row);
       $datum = date("d-m-Y");
       // $datetime += 3600; // Ajout de 1heure ! (Hiver)
       $datetime += 3600; // Ajout de 1heure ! (été)
       $datetime *= 1000; // convert from Unix timestamp to JavaScript time
     
     
    $datapolar[] = "[$winddirect, $windspeed]";
    $datapolar2[] = "[$winddirect, $rafale]";
     
     
    }
    mysqli_close();
    ?>
    Un petit coup de main supplémentaire. Une piste ???
    Merci d'avance et bonne journée.

    On voit ce qu'il y a actuellement à http://meteo.quetigny.thierry-renault.fr/

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Effectivement, il te manque un paramètre pour l'appel de mysqli_query : il faut préciser la connexion à utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysqli_query($db , $sql);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Par défaut
    MERCI

    Voilà !!
    Une mission rondement menée.
    Il suffit de regarder ICI
    http://meteo.quetigny.thierry-renault.fr/

    Tout est résolu.
    J'ai eu un mal de chien à bien trouver les bons scripts, mais tu m'as bien mis sur la voie et en regardant les sujets, je suis parvenu à éliminer un à un les messages d'erreur qui ne manquaient pas.
    Je suis très content et je ne sais comment te remercier.
    Je t'ai juste mis une petite phrase tout en bas de mon site.

    Je te souhaite une excellente soirée.
    Merci encore.
    Et à un de ces jours au détour d'une autre question, car je ne suis qu'un tout petit utilisateur.
    Bien amicalement.

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

Discussions similaires

  1. [FORMS6] : problémes suite passage sous Windows XP
    Par Nargel33 dans le forum Forms
    Réponses: 6
    Dernier message: 29/03/2007, 10h50
  2. [Tableaux] erreur suite passage php4 à php5
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 22/02/2007, 17h43
  3. Changement d'image au passage de la souris
    Par dessinateurttuyen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 18/07/2006, 14h05
  4. Java script + JSP : Passage de données
    Par Rastapwalu dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/12/2005, 16h58

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