Php et mysql

Fermé
azerty - 16 avril 2009 à 16:51
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 4 mai 2009 à 21:30
Bonjour,

alors voila j ai un petit probleme avec php et mysql

J ai une base de donnee (sous php my admin) qui contient 2 champ, un champ temperature et un champs oxygene. A coter de sa j ai 2 fichier txt, un qui contient les valeur temperature et l autre qui contient les valeurs oxygene.
La mise en page des valeur dans les txt se presente sous cette forme:

X°C
X°C
X°C
X°C
...
... (idem pour le txt de l oxygene)

Donc j ai ma base de données et mes 2 txt et je voudrais créer un script php qui prendra automatiquement les valeur stockées dans le txt temperature pour les mettre dans le champs temperature de ma BDD de meme pour l oxygene mais je ne sais pas comment faire sa><
Alors voila si quelqu un a une solution je suis a l ecoute =)
merci d avance

3 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
16 avril 2009 à 21:35
bonsoir en passant rapidement, je te file une piste sur laquelle tu pourra plancher.
le principe tu parcours ton fichier texte et tu stocke le tout dans un array

<?php
$file = fopen("tonfichier.txt", "r");

$tab_res=array(); // on declare le tableau
$i=0;// compteur
while (!feof($file)) /* signifie que tant qu'on est pas a la fin du fichier on continue*/
{
$tab_res[$i]=explode("X",fgets($file,128));
/* X correspond a un caractere qui separe chaque enregistrement danston fichier texte,cela peut etre un retour chariot chr(10)*/
$i++;
}
fclose($file);
print_r($tab_res); // affcihche le contenu de ton tableau
?>


ensuite il ne te suffit plus que de recuperer le contenu de ton array

@+
1
je recuperé cette trame je suis pas sur que sa soit normal:

Array ( [0] => Array ( [0] => 22.47 °C ) [1] => Array ( [0] => 22.94 °C ) [2] => Array ( [0] => 24.35 °C ) [3] => Array ( [0] => 22.94 °C ) [4] => Array ( [0] => 22.94 °C ) [5] => Array ( [0] => 22.94 °C ) [6] => Array ( [0] => 22.94 °C ) [7] => Array ( [0] => 23.41 °C ) [8] => Array ( [0] => 22.94 °C ) [9] => Array ( [0] => ) )

sa devrais pas plutot m'affciher juste les valeur du txt?
0
d_laurent23 Messages postés 5 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 17:02
Bonjour,
En farfouillant du côté du manuel, tu peux avoir la documentation complète des fonctions d'ouverture de fichier
https://www.php.net/manual/fr/function.fopen.php
https://www.php.net/manual/fr/function.fread.php

Il y a aussi le SiteduZero sur lequel tu as de superbes tutoriels pour tout ce qui touche au fichier (lecture, écriture dans un fichier).
Tu as juste à coller les valeurs lues à chaque itération dans une requête "INSERT INTO (...) "
Le tout dans un joli WHILE pour la fin du fichier.

En espérant avoir pu t'aider, je n'ai que ça sous la main pour l'instant.
Tiens-nous au courant.
0
hum j ai essayé avec la fonction fopen mais le probleme est que cette fonction va stocker toutes les données du txt dans une seule variable...

je pense que la solution serais de stocker la premiere valeur du txt dans une variable X, de l envoyer a la BDD (avec INSERT TO ou UPDATE) puis stocké la deuxieme valeur dans une variable Y etc... Le probleme est que je ne voit pas comment faire pour que la fonction fopen ne lise que la premiere variable au premier passage puis uniquement la deuxieme etc...
0
d_laurent23 Messages postés 5 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 avril 2009 > azerty
16 avril 2009 à 20:28
Bonsoir,
La fonction fgets pourrait résoudre ton problème.
Cf. Site du Zéro : https://openclassrooms.com/fr/courses#ss_part_3

Pour lire tes valeurs tu définis une variable dans laquelle tu stockes le résultat de l'appel au fgets().
Et pour pouvoir itérer sur la longueur de ton fichier, tu mets tout ça dans une boucle while qui vérifie que tu n'es pas à la fin du fichier.

Tiens-moi au courant.
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
4 mai 2009 à 21:30
essaye ça

{
$res_tmp[$i]=explode("X",fgets($file,128));
/* X correspond a un caractere qui separe chaque enregistrement danston fichier texte,cela peut etre un retour chariot chr(10)*/
  if(strlen($res_tmp[0]) > 0)
  {
   $tab_res[]=$res_tmp[0];
   }

$i++;
}


je te fait ça rapidement sans tester mais ca devrais le faire ...
0