Comment intégrer des fichiers FTP dans une base de données ?

Répondre
clicone
le 18/04/2006 à 21:03
clicone
J’ai un problème aucun nom de fichier ne s’inscrit dans ma base pourrais tu jeter un oeil sur mon code pour voir si il y a une erreur, Merci :)

<?php
//Recup des donées
$files = array();
$handle = opendir("../files");
while($file = readdir($handle)) {
if($file != "." && $file != ".." && eregi("([.]gif)|([.]jpg)|([.]png)|([.]pdf)", $file)) {
$files[] = $file;
}
}
closedir($handle);
sort($files);

// display fichiers
foreach($files as $v) {
echo $v . "";
}
?>

<?php
$base = mysql_connect ('mon_host', 'mon_login', 'mon_motpasse');
mysql_select_db ('ma_base', $base) ;
?>

<?
// insert base
$sql = 'INSERT INTO docs (data) VALUES (\''.$file.'\')';

mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());

mysql_close();
?>
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Bzh
le 18/04/2006 à 21:46
Bzh
Oui, c'est normal car dans ton script, $file est un tableau contenant TOUS les fichiers images de ton répertoire.

Or, tu ne peux pas insérer directement comme cela un tableau dans ta base.

<?php

print_r($file);

?>


Tu permettras de visualiser le contenu de ton tableau...

Bye...
clicone
le 18/04/2006 à 22:56
clicone
Oui $file contient tous les fichiers... comment puis je les récuperer un par un inserer un par un ?
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
i M@N
le 18/04/2006 à 23:06
i M@N
Hello !

Comme ça p'tet :
<?php

/*on se connecte à la base*/
$base = mysql_connect ('mon_host', 'mon_login', 'mon_motpasse');
mysql_select_db ('ma_base', $base) ;

/*liste des fichiers et mise en tableau*/
$files = array();
$handle = opendir("../files");

while($file = readdir($handle)) {
if($file != "." && $file != ".." && eregi("([.]gif)|([.]jpg)|([.]png)|([.]pdf)", $file)) {

$files[] = $file;

}

}

closedir($handle);

/*on trie*/
sort($files);

/*parcours du tableau $files*/
foreach($files as $name) {

/*insertion base*/
$sql = 'INSERT INTO docs (data) VALUES (\''.$name.'\')';
mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());

echo $name . "";

}

mysql_close();

?>


@+...
One Love, One Heart, One Unity.
clicone
le 18/04/2006 à 23:47
clicone
Super MERCI à tous et spéciale dédicace à iM@n.

Si je peux me permettre iM@n, adresse moi des coodonnées c'est avec plaisir que je te ferai parvenir un beau ballotin de chocolats pour te remercier pour ton aide renouvelée ;)
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
clicone
le 19/04/2006 à 00:29
clicone
Question subsidiaire : comment faire pour que les fichiers ne s'incrivent qu'une seule fois dans la BDD (et pas lors de chaque chargement de la page) ?
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
i M@N
le 19/04/2006 à 00:51
i M@N
Reuh ...

Pour avoir les fichiers une seule fois dans la base le plus simple c'est de vider ta table à chaque fois que tu regardes le contenu du répertoire :
<?php

/*on se connecte à la base*/
$base = mysql_connect ('mon_host', 'mon_login', 'mon_motpasse');
mysql_select_db ('ma_base', $base) ;

/*on vide la table*/
$sql = 'TRUNCATE TABLE docs';

/*on exécute la requête*/
$result = mysql_query($sql);

/*etc la suite ...*/

?>

Merci pour les chocolats, je suis très touché, mais je pense que tu devrais les offrir @ La_Globule pour son siper kewl website ... puis bon j'ai pas fait grand chose, ceux qui sont passés avant moi sur ce topic et qui sont là plus souvent sur ce forum avaient bien avancé le boulot. smiley

@+...
One Love, One Heart, One Unity.
clicone
le 19/04/2006 à 05:17
clicone
Super merci, je viens d’apprendre toute une série de fonctions. Dernier petit souci : actuellement READDIR affiche les données (pourtant il n’y a pas de print), comment faire pour que les données s'incrivent dans ma BDD mais ne s’affichent pas à l’écran ?
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
i M@N
le 19/04/2006 à 10:55
i M@N
Hello !

C'est parce que t'as un echo $name; dans la boucle for. smiley

Remplace par //echo $name; ou efface-le.

@+...
One Love, One Heart, One Unity.
clicone
le 19/04/2006 à 16:06
clicone
SUPER MERCI iM@N
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Répondre
LoadingChargement en cours