Page 1 sur 1

Inserer le nom d un fichier (variable) dans un lien

Posté : 25 janv. 2008, 17:21
par sauveura
Bonjour tout le monde,

Je cherche à insérer le nom d'un fichier stocké dans ma bd dans un lien permettant de visualiser celui ci.
<?php
echo "toto : $data[toto]<br/>";
?>
le nom de mon fichier apparait bien ensuite j'essaie de faire :

Code : Tout sélectionner

<a href="images/<?php echo "$data[toto]";?>">Cliquez ici</a>
mais mon lien ne fait que pointer vers le dossier images et non sur le fichier.

Je suppose que mon erreur est une fois de plus grosse comme une maison :oops: [/php]

Posté : 25 janv. 2008, 17:39
par d0m
c'est toujours la même erreur :
$data est un tableau. Tu peux donc accéder à ses éléments grace aux index.
Les index sont soit des valeurs numériques, soit des chaines de caractères.

Code : Tout sélectionner

1 est une valeur numérique "1" est une chaine de caractère '1' est une chaine de caractère 'toto' est une chaine de carctère "toto" aussi toto n'est ni une valeur numérique ni une chaine de caractère
$data[toto] n'existe donc pas.

Posté : 25 janv. 2008, 17:44
par sauveura
T'inquietes ca va bientôt rentrer :?
<a href="images/<?php echo "$data['toto']";?>">pvliv</a>
Ca ne fonctionne toujours pas

Posté : 25 janv. 2008, 17:50
par d0m
PAs besoin des doubles quotes, $data['toto'] est déjà une chaine.
<a href="images/<?php echo $data['toto'];?>">pvliv</a>
Qu'y a t il d'affiché dans ton source html pour cette balise?

Posté : 25 janv. 2008, 18:02
par sauveura
tu veux parler d'une ligne genre :
<img src="images/<?php echo $data['toto'];?>" /> 
parceque je pensais pas en avoir besoin :oops:

Posté : 28 janv. 2008, 09:46
par sauveura
Quelqu'un a une idee?
Merci d'avance.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 28 janv. 2008, 10:58
par d0m
Si tu veux simplement qu'en cliquant sur ton lien la page s'ouvre en affichant ton image

Code : Tout sélectionner

<A HREF="images/nom.jpg">
suffit.

Tout d'abord tu dois faire la différence entre le HTML et le PHP.
Le HTML est envoié à ton navigateur, qui lit le code et sais comment et quoi afficher.
Le PHP est interpreté par ton serveur qui calcule les variables, et finalement affiche des élements qui vont être introduit dans le code HTML avant d'être envoié au navigateur.

Il y a donc une différence entre le code PHP qui tu écris et le code HTML envoié au navigateur.
Si tu affiches le code source HTML de ta page (par exemple sous IE : affichage >> source), tu vois le code html qui est envoié au navigateur après interpretation du PHP.

Tu verras donc si tes variables ont été calculées correctement.

Par exepmle pour ton code PHP :
<a href="images/<?php echo $data[toto];?>">Cliquez ici</a>
si $data[toto] vaut mon_image.jpg
le code source correspondant sera :

Code : Tout sélectionner

[php]<a href="images/mon_image.jpg">Cliquez ici</a>[/php]
Ton problème est que ton lien pointe sur le dossier seulement. Donc quelque part, ton navigateur ne lit pas

Code : Tout sélectionner

<A HREF="images/nom.jpg">
mais

Code : Tout sélectionner

<A HREF="images/">
Regardes donc le code source HTML pour voir ce qui est est écrit.

Posté : 28 janv. 2008, 11:03
par Ryle
PHP permet de générer du code HTML, qui sera ensuite interprété par le navigateur. Pour créer un lien vers le fichier nom_du_fichier.ext, il te faut écrire la ligne de code html suivante :
<a href="images/nom_du_fichier.ext">pvliv</a>


Pour rendre dynamique le nom du fichier, il suffit de générer à l'aide de php la partie de ce code que tu souhaites rendre dynamique :
<a href="images/<?php echo 'nom_du_fichier.ext';?>">pvliv</a> 
Tu peux alors utiliser une variable contenant le nom du fichier
<?php 
  $data = array();
  $data['toto'] = 'nom_du_fichier.ext';
?>
<a href="images/<?php echo $data['toto'];?>">pvliv</a> 
Si dans le code source généré, ton lien est <a href="images/">, c'est tout simplement que la variable $data['toto'] est vide. Et il est donc normal que celui-ci ouvre le dossier et non un fichier :)

Posté : 28 janv. 2008, 15:00
par sauveura
Merci beaucoup vais essayer de mettre tout ca en application :)

bon je suis perdu
<?php
mysql_connect("localhost","root",""); 
mysql_select_db("optima"); 
$sql = "SELECT rs, address, zip, city, contact, tel, pvlivraison FROM suivi_livraison WHERE id = $id"; 
$result = mysql_query($sql); 
while ($data = mysql_fetch_array($result)) { 

echo "Raison Sociale : $data[rs]<br/>"; 
echo "Adresse : $data[address]<br/>";
echo "Code Postal : $data[zip]<br/>";
echo "Ville : $data[city]<br/>";
echo "Contact : $data[contact]<br/>";
echo "Telephone : $data[tel]<br/>";
echo " Pv de livraison : $data[pvlivraison]<br/>"; 
} 
?> 
<a href="images/<?php echo $data['pvlivraison'];?>">pvliv</a>
la variable $data[pvlivraison] existe bien vu que l'echo me renvoie la valeur correcte alors pourquoi dans la source mon lien s'arrete à : <a href="images/">pvliv</a>