Probleme php

qwerty -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

Alors voila j ai un petit problème avec un script php.

La fonction de mon script est d'envoyer automatiquement des données stockées dans un txt dans une base de données.

Voila a quoi ressemble mon prog:

<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("orphy", $link) or die(mysql_error());
$file = fopen("C:\eleve\vigneron\client\stockt.txt", "r");

$tab_res=array();
$i=0;
while (!feof($file))
{
$tab_res[$i]=explode("chr(10)",fgets($file,128));
$query = "INSERT INTO orphy ( temperature ) VALUES ('$tab_res[$i]')";
$result = mysql_query($query, $link) or die($query . " - " . mysql_error());
$i++;
}
fclose($file);
mysql_close($link);
?>


Je n'ai aucune erreur à l'exécution mais au lieu d'avoir les données stockées dans le txt apparaître dans le champ temperature de ma BDD j'ai le mot "Array" qui s'y inscrit...

Donc voila voila si quelqu un connait une solution capable de me débloquer je suis tout ouïe ^^
A voir également:

3 réponses

P@t@ch0n Messages postés 603 Statut Membre 85
 
Faire des requetes dans une boucle, c'est à éviter.
Sans boucle :
$link = mysql_connect("localhost", "root", ""); 
mysql_select_db("orphy", $link) or die(mysql_error()); 

$file = file('C:\eleve\vigneron\client\stockt.txt'); 

// Suppression des caractères blancs éventuels
$file = array_map('trim', $file);

$query = "INSERT INTO orphy ( temperature ) VALUES ('";
$query .= implode("', '", $file);
$query .= "')";
$result = mysql_query($query, $link) or die($query . " - " . mysql_error());

fclose($file); 
mysql_close($link);
Il est aussi important d'appliquer mysql_real_escape_string() ou encore intval() (si valeurs numériques) sur ton tableau avec array_map().
0
qwerty
 
le probleme reste le meme j ai toujours Array qui apparait dans mon champ temperature...
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Pas possible, à part si ton fichier contient le texte :

Array
Array
...
0
qwerty
 
heu ba non j ai pas de array dans mon txt....
voila a quoi il ressemble:
22.47 °C
22.94 °C
24.35 °C
22.94 °C
22.94 °C
22.94 °C
22.94 °C
23.41 °C
22.94 °C
...
...
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Normal que tu ais array dans ta BDD car:

$tab_res[$i]=explode("chr(10)",fgets($file,128));

explode genere un array qui est stocké dans $tab_res[$i]

et comm en dessous c'est $tab_res[$i] que tu enregistres dans ta base .....

si tu veux garder ton code ainsi, il faut :

$tab_res[$i]=explode("chr(10)",fgets($file,128));
$query = "INSERT INTO orphy ( temperature ) VALUES ('$tab_res[$i][0]')"; 
0