photo et base de donnees

Eléphant du PHP | 170 Messages

04 déc. 2007, 14:06

Bonjour a tous,
Je voudrai appeler une photo suivant la ligne du champ selectionné dans ma BDD d'apres un formulaire. Quelle est la bonne methode pour appeler cette photo?
La stocker dans une base de données?
Stocker le lien dans la base de donnees?
Ou autre?
Si les deux solutions fonctionnent, quelle est la plus rapide des deux?
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 déc. 2007, 14:20

Ca dépend un peu de ce que tu veux faire, mais d'une manière générale, si tu n'as pas besoin de faire de l'analyse d'image, ne stockes pas les fichiers dans ta base, ça la surchargerait inutilement.

Il faut donc mieux enregistrer tes fichiers dans un dossier sur ton serveur et conserver seulement le chemin dans ta base de données :) (avec éventuellement la taille ou un titre). Tu n'auras avec php qu'à récupérer le chemin et le coller dans une balise <img />. Ca serait nettement plus simple et plus rapide que de coller ton image en base et devoir la regénérer à chaque demande...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 170 Messages

06 déc. 2007, 07:33

merci de votre reponse mais je tate un peu la...
quelqu'un aurait il un exemple?
que doisje rentrer dans ma bdd? un truc genre /photo/photo1.jpeg ou juste photo1.jpeg?
et pour recuperer quelles sont les synthaxes possibles?
merci

Eléphant du PHP | 97 Messages

06 déc. 2007, 13:37

Ce que tu peux faire si tu as un index numérique dans ta base de donnée qui correspond à un et un seul article ou produit, c'est lors de la création des images correspondantes , récupérer cet index, en
l'affectant à une variable $i , et de nommer ton image : 'product'.$i.'jpeg'. Ainsi pas besoin d'entrer de liens dans ta base de donnée, il te suffit juste de recuperer l'index du produit !

Voilà c'est juste une idée que tu peux implementer de differentes manieres dans tes scripts.

Eléphant du PHP | 73 Messages

06 déc. 2007, 14:04

Je te conseille de stocker toutes les photos au même endroit comme ça pas besoin de stocker le chemin, ou alors dans des sous répertoires en fonction du type de la photo.

Dans tout les cas je pense que tu ne dois pas utiliser de "nom simple" pour les photos au risque de te les faire aspirer. Il te faut plutot mettre en place des noms de fichier "chiffrer" par exemple en MD5. Et du coup stocker ce nom dans ta base de données ou alors le stocker en clair et appliquer le "chiffrement" à chaque fois que tu veux y accéder.
Image Un bon maître a ce souci constant : enseigner à se passer de lui.

Eléphant du PHP | 170 Messages

07 déc. 2007, 13:48

bon alors j'arrive pas a afficher ma photo qui se trouve dans un dossier image du repertoire www de EASYPHP.
Celle ci se nomme image1.jpeg
Le lien se trouve dans un champs appeler LIEN de ma BDD entré comme suit:
"image/image1.jpeg"

mon code est celui ci:
echo $donnee['lien'];
ça marche pas...
j'ai essayer
<imgscr = $donnee['lien']>;
ça marche pas non plus...
j'ai essayer d'autre formule dnas le champs de la BDD et rien encore....
Queuqu'un pour un coup de main?
merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 déc. 2007, 14:00

En php, le but est de générer un code html que le navigateur va pouvoir interpréter. Il te faut donc générer une balise image :

Code : Tout sélectionner

<img src="nom_image.ext" alt="titre de l'image" />
A partir de là, il te suffit de remplacer les parties dynamique de ta balise avec tes valeurs php :
<img src="<?php echo $monImage; ?>" alt="<?php echo $titreImage; ?>" />
:)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 97 Messages

07 déc. 2007, 14:11

salut,
echo $donnee['lien'];
ne pourra certainement pas fonctionner car tu ne fais qu'afficher le lien, et
<imgscr = $donnee['lien']>;
non plus , d'une part à cause d'un problème de syntaxe html, et d'autre part parce que tu n'appliques pas la fonction echo() dessus, en consequence de quoi rien ne s'affiche.

Ce que tu peux faire c'est :
echo '<img src="'.$donnee['lien'].'">';
Et si ca ne marche toujours pas, alors cela peut venir d'une erreur dans le chemin
du fichier, il faut toujours garder à l'esprit ou se trouve le script par rapport à l'image qu'il appelle.


nb : Les messages d'erreurs sont toujours trés instructifs concernant le probleme, n'hesite donc pas
à les poster si tu en as, il rendront beaucoup plus facile l'analyse du probléme.

Cependant il y a autre chose qui m'intrigue: à quoi correspond $donne['lien] ?
Et tu sure qu'il ne s'agit pas plutot d'un tableau contenant les liens entrés dans ta bdd, si c'est
le cas alors il faut parcourir se tableau a l'aide d'une boucle....
Modifié en dernier par Shadockou le 07 déc. 2007, 14:15, modifié 1 fois.

Eléphant du PHP | 97 Messages

07 déc. 2007, 14:13

Oups réponse simultanée avec Ryle... :lol:

Eléphant du PHP | 170 Messages

08 déc. 2007, 06:42

merci de votre aide ça marche!!!