Page 1 sur 2

recuperer contenu fichier dans un champ mysql

Posté : 16 mai 2005, 10:46
par jujub
Saluta tous

J'ai un fichier qui est genérer automatiquement par mon pc, et je voudrai recupérer son contenu (quelques lignes) dans le champs "log" une table mysql.......

Comment dois-je faire ?

Merci :wink:

Posté : 16 mai 2005, 11:01
par zeus
Tu ouvre ton fichier, tu places son contenu dans un tableau et tu l'enregistres dans ta bdd !!!!
<?php
$file = "c:/mesDocs/monFichier.log"
if (file_exists($file)) { // Permet de tester l'existence du fichier
  $a_file = file($file);
  mysql_connect("host", "user", "pwd");
  mysql_select_db("db");
  $texte = "";
  foreach($a_file as $index => $val) {
    $text .= $val."\n";
  }
  $str_query = "INSERT INTO table (champ=".$text.")";
  mysql_query($str_requete); or die ("enregistrement impossible");
} else {
  echo "Le fichier 'monFichier.log' n'existe pas");
}
?>

Posté : 16 mai 2005, 11:14
par jujub
Tu ouvre ton fichier, tu places son contenu dans un tableau et tu l'enregistres dans ta bdd !!!!
  $texte = "";
  foreach($a_file as $index => $val) {
    $text .= $val."\n";
 
Comprend pas ces lignes là :oops: :roll:

Posté : 16 mai 2005, 11:20
par zeus
Tu ouvre ton fichier, tu places son contenu dans un tableau et tu l'enregistres dans ta bdd !!!!
$texte = "";
  foreach($a_file as $index => $val) {
    $text .= $val."\n";

Comprend pas ces lignes là
foreach($a_file as $index => $val) {
Cette boucle permet de parcourir tout le tablea $a_file en placant, pour chaque boucle, l'index du tableau dans la variable $index, et le contenu de la case du tableau dans la variable $val !!!!

Ensuite, pour chaque case de ton tableau, je la concatene dans une unique variable $texte. C'est ce qui me permet de placer le contenu du fichier (si il est en plusieurs lignes, la fonction file() va retourner un tableau avec plusieurs cases) dans une unique variable afin de pouvoir l'enregistrer dans uns bdd !!!

J'éspère avoir été plus clair !!! :?

Si tu comprends toujours pas, hésite pas à reposer une question :wink:

Posté : 16 mai 2005, 11:25
par jujub
foreach($a_file as $index => $val) {
Cette boucle permet de parcourir tout le tablea $a_file en placant, pour chaque boucle, l'index du tableau dans la variable $index, et le contenu de la case du tableau dans la variable $val !!!!


je dois remplacer une des variable par le nom de mon fichier ou autre chose ?????????????? =P~

Posté : 16 mai 2005, 11:32
par zeus
$file = "c:/mesDocs/monFichier.log"
Dans cette ligne, je donne l'url complete de mon fichier
if (file_exists($file)) { // Permet de tester l'existence du fichier
Dans cette ligne, je teste l'existence du fichier pour qu'il n'y ait pas d'erreur à l'exécution
$a_file = file($file); 
Dans cette ligne, j'extrait le contenu du fichier et je le place dans un tableau. Une ligne du fichier va se retouver dans une case du tableau

fichier :
coucou
c'est moi
qui parle


va se retouver dans le tableau
array(
0=>"coucou",
1=>"c'est moi",
2=>"qui parle")


La seule chose que tu doit changer dans mon code, c'est le nom du fichier :
$file = "c:/mesDocs/monFichier.log"

Posté : 16 mai 2005, 11:44
par jujub
j'ai fait
$file = "/var/spool/fax/log/$log";
		if (file_exists($file)) 
			{
			 // Permet de tester l'existence du fichier
			 $a_file = file($file);
 			 $texte = "";
  			 foreach($a_file as $index => $val) 
			 {
			 $text .= $val."\n";
  			 }
  			$str_query = "INSERT INTO fax (Far=".$text.")";
  			mysql_query($str_query); or die ("enregistrement impossible");    //ligne 65
			} else 
			{
  			echo "Le fichier 'monFichier.log' n'existe pas");
			}
eil me renvoie
Parse error: parse error, unexpected T_LOGICAL_OR in /var/www/html/Hylafax_log.php on line 65
y aurai une connerie

Posté : 16 mai 2005, 11:46
par rami
Enleve le ; apres mysql_query():
mysql_query($str_query) or die ("enregistrement impossible");    //ligne 65

Posté : 16 mai 2005, 11:48
par zeus
J'ai écrit ce code sans le lire et j'ai pas vérifié mes erreurs !!!

Mais si tu lis la ligne avec un peu d'attention, tu peux trouver l'erreur tout seul !!!

Le message d'erreur donne pourtant de bonnes indications : "je trouve un OU logique que je n'attend pas et qui ne devrait pas se trouver ici" !!! Ca veut dire qu'il y a une erreur de syntaxe avant le OU !!!

et si tu regarde la ligne,

mysql_query($str_query); or die ("enregistrement impossible"); //ligne 65

il y a un ; en trop !!!!!

Regarde bien le code, interprete les messages d'erreur et tu peut trouver facilement les erreurs !!!!

Posté : 16 mai 2005, 11:49
par zeus
Excuse rami, j'ai posté en même tps !!!

Posté : 16 mai 2005, 11:56
par jujub
il fallait aussi enlevé la parenthese a la fin de la derniere ligne

Posté : 16 mai 2005, 11:58
par zeus
Excuse moi pour les erreurs mais comme je te l'ai dit, j'ai écrit ce code en 2mn sur le forum sans le tester !!!

Désolé :oops:

Posté : 16 mai 2005, 12:14
par jujub
:wink: =D>

Merci ca marche maintenant merci encore ZEUS c'est pas la première fois que tu me dépanne j'espere pouvoir renvoyer l'ascenseur


BOUJOUX :wink: :lol:

Posté : 16 mai 2005, 12:15
par zeus
Ca sera avec plaisir !!!

C'est bizarre comme on aime que les autres nous aide quand on a besoin :lol: :lol:

Posté : 16 mai 2005, 12:23
par jujub
j'ai fai
if (file_exists($file)) 
			{
			 // Permet de tester l'existence du fichier
			 $a_file = file($file);
 			 $texte = "";
  			 foreach($a_file as $index => $val) 
			 {
			 $text = $val."\n";
  			 }
			 $a=33;
  			//$str_query = (" INSERT INTO Fax (Far) VALUES ('$text') WHERE Fjid='$a' ");
			$str_query = (" UPDATE `Fax` SET Far = '$text' WHERE Fjid = $a ");
			
  			mysql_query($str_query) or die ("enregistrement impossible ".mysql_error());
			} 
		else 
			{
  			echo "Le fichier ".$file." n'existe pas";
			}
Et il ne m'inset que la dernière ligne


Sinon j'ai pas compris ta phrase

C'est bizarre comme on aime que les autres nous aide quand on a besoin Laughing Laughing