Forum Clubic

Gestion d'images en PHP - Après requêtes SQL

Bonjour à tous.

[color=green]Voilà mon problème : Suite à un clic dans une liste déroulante, je peux avoir un résultat grâce à une requète. J’aimerai que dans ce résultat s’affiche une image.
Exemple:[/color] ma requète affiche quelques prénoms (Robert, Martin, Eric), je voudrais que leurs photos apparaissent en dessous de leurs noms respectifs.
Comment gérer mes images ?
Faut-il gérer mes images en PHP (avec un script)
Merci d’être clair dans vos réponses et de les détailler au mieux ( je suis un bon novice on va dire ! …)

PS: apparament il est bien de faire un dossier avec des images dedans et sous mysql mettre un lien vers ces images. Qu’en penser vous? Comment faire ?

Encore Merci

et bien c’est assez simple, dans une table tu stockes les informations de la personne ainsi que le nom du fichier. select fichier form table where nom=‘xxx’ et prenom=‘yyy’ et tu affiches l’image du nom correspondant à la valeur retournée

Merci benj pour ta réponse, mais si tu pouvais me détailler un peu plus ça me permettrai de mieux comprendre (1.,2.,3. …). Merci encore benj

Ok alors tu as une table comme ca :

| Nom | Prenom | nom_de_fichier |
| ROF | Pierre | akeuxpw.jpg |
| … | …| … |

Après tu fais un affichage de la page concernant chaque personne, d’une facon ou d’une autre, et tu affiches l’image.

Admettons que tu veuilles afficher la photo de Pierre ROF, tu fais donc :


SELECT nom_de_fichier FROM table WHERE Nom='ROF' AND Prenom='Pierre'

(bien sur il faut que tu geres les noms prénoms (genre 2 fois la même chose))

tu reçois donc le nom du fichier dans une variable et tu l’affiches de la façon suivante :

<?php
...
echo "<img src=./chemin/'".$variable."' alt='alternate text'>";
...

Voilà … plus d’infos je peux pas :smiley:

Salut, je n’y connais rien, mais ça m’intéresse et j’essaye de comprendre… :wink:

Tu dis “tu reçois donc le nom du fichier dans une variable”. la variable en question, par rapport à ton premier code, n’est-elle pas nom_de_fichier ?

Ce qui donnerait , en étant plus précis, comme deuxième code :
echo “<img src=./chemin/’”.$nom_de_fichier."’ alt=‘alternate text’>";

C’est juste pour savoir si j’ai bien compris le principe de récupération de la variable.
Merci.

Question subsidiaire : et s’il y a plusieurs fichiers qui correspondent, ça se passe comment pour la variable ? Elle prend quelle valeur ?
Faut-il faire une boucle et si oui, comment ?

alors je vais essayer de répondre a tout en un coup


<?php
/* Admettons qu'ici la connec à la DB est faite et fonctionnelle
avec les méthodes classiques :
mysql_connect(HOST,USERNAME,PASSWORD);
@mysql_select_db(DATABASE) or die( "Unable to select database");
*/

$requete = "select nom_de_fichier from table where nom='ROF' and prenom='Pierre'";
$result = mysql_query($requete);
//on peut evtl faire un controle d'erreur

if (!$result) {
   $message  = 'Requête invalide : ' . mysql_error() . "\n";
   $message .= 'Requête complète : ' . $query;
   die($message);
}

while ($ligne = mysql_fetch_assoc($result)) {
   echo "<img src='".$ligne['nom_de_fichier']."' alt='alternate'>";
}

?>

et la tu as chaque une image ou plusieurs (l’une a cote de l’autre) s’il y à plusieurs résultats.

Après, la mise en forme à vous de voir.

j’espere vous avoir eclairé.

http://fr.php.net :slight_smile:

j’ai oublié le chemin du répertoire pour les images mais en principe c’est assez clair

Impecable ! Merci.

J’ai fait plusieurs choses :

  1. J’ai crée un dosier et mis mes images dedans
  2. J’ai fait un lien dans MySQL avec mes images
  3. J’ai mis des données dans un tableau et j’affiche l’image :
    while ($dt=mysql_fetch_row($result))
    {
    echo “<img src=./mon_dossier/images’”.$image."’ alt=‘alternate text’>";
    }

Ma variable je veux l’appeler “image”, mais je ne sais pas comment récupérer cette variable. Merci de m’expliquer comment faire

c’est bête de faire ca, mais si ça t’aide à t’y retrouver

while ($dt=mysql_fetch_row($result))
{
$image = $dt['champ_correspondant'];
echo "<img src=./mon_dossier/images'".$image."' alt='alternate text'>";
}