/RESOLU/Liens vers documents PDF + UPDATE base

Petit nouveau ! | 5 Messages

26 juin 2008, 09:31

Bonjour à tous !
Je débute en PHP (j'ai lu quelques tutoriaux et épluché des bouts de code) ; pour mon boulot, je suis en train de construire une petite application avec les caractéristiques suivantes : nous avons un répertoire qui contient des documents PDF ; chaque jour, des documents sont ajoutés et de manière plus ou moins régulière d'autres sont retirés. Je souhaite avoir une page PHP qui m'affiche deux informations : en haut de page le dernier document déposé dans le répertoire ; un peu plus bas les 5 documents précédents ; et lorsque l'on clique sur le lien, il doit nous ouvrir le fichier PDF.

Ce que j'ai déjà réussi à faire : j'ai récupéré et adapté un bout de code qui liste le contenu du répertoire et insère automatiquement dans la base SQL le nom du fichier et une date d'insertion (la clé primaire étant le 1er champ, "id", qui s'incrémente tout seul).

Ce que je n'ai pas réussi à faire :
-je ne parviens pas à insérer le lien hypertexte qui va m'ouvrir le fichier PDF
-si je retire un fichier du répertoire, je n'arrive pas à faire un update de la base, c'est-à-dire enlever ce fichier de ma base SQL (dans la mesure où il n'est plus présent dans mon répertoire)

En gros, j'ai réussi à automatiser la commande "INSERT INTO" mais pas la commande "UPDATE".

Je vous remercie d'avance de votre aide !!!! Je ne suis plus très loin du but !!![/list]

J'ai finalement résolu mes deux problèmes.
J'ai indiqué "Résolu" dans le titre de mon message mais je ne sais pas si c'est la bonne méthode pour signaler que je n'ai plus besoin d'aide sur cette question.
Merci de m'indiquer s'il y a une autre façon de faire.

Mammouth du PHP | 684 Messages

26 juin 2008, 14:10

-je ne parviens pas à insérer le lien hypertexte qui va m'ouvrir le fichier PDF
Pour faire un lien hypertexte, il te faut connaitre le chemin du repertoire qui stocke tes fichiers PDF.
Ensuite dans une boucle for par exemple, tu fais un echo de ton liens pour chaque fichier PDF.
Exemple d'algorithme :
<?php
define ("DIR_PDF", "/mon_repertoire/"); //Important le '/' a la fin si tu ne veux pas le gerer ailleur.
foreach ($filesPDF as $oneFile) {
    echo '<a href="http://monsupersite.fr' . DIR_PDF . $oneFile . '"/><br/>';
}
?>
-si je retire un fichier du répertoire, je n'arrive pas à faire un update de la base, c'est-à-dire enlever ce fichier de ma base SQL (dans la mesure où il n'est plus présent dans mon répertoire)
Pour ce bout de code, il te faut faire une difference de donnees entre ce que tu a en base de donnees et le contenu de ton repertoire.
Tu peux faire une requette SQL qui te donne tous les fichiers presents en bdd et utiliser ta boucle
de lecture du repertoire pour mettre chaque fichier dans un tableau.
Petit exemple :
<?php
$tabFilesPDF = liste_directory();
$tabSQL = mysql_fetch_array($ressource_mysql, MYSQL_NUM);
$tabDiff = array_diff($tabFilesPDF, $tabSQL);
if (count($tabDiff) > 0) {
    foreach ($tabDiff as $toDel) {
        echo 'L\'element suivant est une difference : ' . $toDel . '<br/>';
    }
}
?>
Attention, l'algo du dessus ne marchera que si tu n'a pas fait de l'ajout de fichier. Car dans ce cas,
il y aura une suppression des nouveaux fichiers. Faudrait rajouter un controle sur les dates pour une
meilleure gestion.
Zigz4g