Php : faire apparaitre les résultats d'une requête sous forme de lien

Signaler
-
 sfavreau -
Bonjour,

Je souhaiterais ouvrir un fichier pdf en fonction d'un paramètre tel que le nom d'un utilisateur. Je m'explique dans un premier temps je fais une requête SELECT qui liste les éléments appartenant à une personne, cela génère une page ou apparraissent cette liste d'éléments en fonction d'un id: Cela renvoie des éléments d'information tel que nom, prenom, ...


Les éléments de la liste apparaissent bien mais je souhaiterais les faire apparaitre en lien poitant vers le champ fichier. Comment peut - on faire ?

[i]$listepatient = $bdd->prepare("SELECT auth_id, auth_idcorrespondant, auth_idresultat, idcorrespondant, nomcorrespondant, nom, prenom, fichier, dossier, date_examen FROM resultats WHERE idcorrespondant = ?") or die(print_r($bdd->errorinfo()));;
$listepatient->execute(array($_SESSION['idcorrespondant']));

while ($patient = $listepatient->fetch(PDO::FETCH_ASSOC))
echo utf8_encode($patient['auth_idresultat']. " " .$patient['nom']. " " .$patient['prenom']. " Examen passé le : " .$patient['date_examen']. "
" );

/i

Je souhaiterais faire apparaitre ces éléments en tant que lien hypertexte, ligne par ligne, chaque ligne ouvrant un fichier pdf différent. J'ai pensé à mettre avant echo une balise [# ] avec l'exécution d'un script php qui ouvrirait le fichier pdf mais cela ne marche pas.

Quelqu'un aurait il une idée sur la façon dont je pourrais faire afin de pouvoir mettre en lien mes retours ligne par ligne, lien pointant vers des pdf?

3 réponses

Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013

Bonjour,

Es-tu sûr que cette commande ne fonctionne pas ?
echo utf8_encode("".$patient['fichier'].""); 


Si tu n'arrives pas à afficher le fichier (ou à le télécharger) c'est que ce n'est pas le bon chemin. Dans ce cas, affiche ce dernier dans ton site pour voir ce qui est retourné par le serveur.

Cdt,
SL
Merci pour ce conseil, je vais de ce pas faire l'essai et voir ou cela peut me mener.

J'ai essayé sous cette forme :

[i][voirresultatspatients.php?auth_idresultat=<?php echo $patient['auth_idresultat'];?>
<?php
while ($patient = $listepatient->fetch(PDO::FETCH_ASSOC))
echo utf8_encode($patient['auth_idresultat']. " " .$patient['nom']. " " .$patient['prenom']. " Examen passé le : " .$patient['date_examen']. "
" );

?>
]/i

Bien évidemment cela ne marche pas car $patient est déclaré dans la boucle while donc après <?php echo $patient['auth_idresultat'];?>">.


Dans ta commande, la déclaration du lien hypertexte me paraît mieux faite. Thank you !
je viens de faire l'eesai c'est parfait c'est ce que je voulais faire. J'ai ajouté
afin de faire apparaitre les enregistrement ligne par ligne.

echo utf8_encode("".$patient['nom']."
"); /i

Par contre mon pdf correspond à un blob, ce choix a été fait pour des raisons de sécurité mêmes si cela est contraignant et peut engendrer des performances moindres que si seul le nom le chemin était enregistré en base.


Dans ce cas, pour ouvrir le fichier et le mettre en lien, penses - tu qu'il est possible de mettre des headers dans

("".$patient['nom']."
")

("".$patient['nom']."
").

La gestion des guillemets ne va pas être simple. Serait il mieux d'utiliser des doubles quotes ou des simples quotes. Je vais faire des essais.

Merci pour ces précieux conseils.