Probleme php

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 ^^
Configuration: Windows XP
Firefox 3.0.8

3 réponses

  1. 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().
    1. le probleme reste le meme j ai toujours Array qui apparait dans mon champ temperature...
  2. Pas possible, à part si ton fichier contient le texte :

    Array
    Array
    ...
    1. 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
      ...
      ...
  3. 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]')";