Résolu Comment insérer un lien dans le titre d'une image (bdd mysql) ?

Solutions (34)
Tags :
  • MySQL
  • Programmation
|
Bonjour,
Je suis photographe. J'ai un site avec une bdd photos. Quand on lance une recherche la sélection trouvée s'affiche avec son titre dessous.
Je voudrais insérer dans un titre un lien vers une autre page de mon site.
Je cherche depuis des heures mais impossible d'y arriver.
Quelqu'un peut-il m'aider ? (si ça se trouve c'est simple mais je ne suis pas webmaster...)
Merci par avance.
Contenus similaires
Meilleure solution
partage
, Modérateur |
Hmm... regarde comment sont faits les liens sur cette page (dans le code source) : http://www.serge-sautereau.com/serge-sautereau.com/them...
Les liens vers les rubriques sont du type: portfolio.php?rub=architecture/immobilier
Donc tu sauras comment le nom de la rubrique est fait, et il te suffira de faire le même lien sur ton texte:
  1. <a href="http://www.serge-sautereau.com/serge-sautereau.com/book/portfolio.php?rub=nom-rubrique">le texte</a>
  • Commenter cette solution |
Score
0
òh
òi
|
Merci pour tout. La réponse 164432 était finalement la plus efficace dans mon cas (je l'ai élue meilleure réponse).
Au plaisir de nouveaux dialogues
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par toutenphoton.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Il faut voir le code PHP :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
OmaR a dit :
En fait, le truc c'est qu'il faut connaitre tes variables, là je l'ai appelé $portfolio_theme parce que c'est comme ça que s'appelle ta colonne dans la table SQL, mais ça n'a pas l'air d'être forcément le même nom dans ton code PHP...

et, heu, en pratique, il y a un moyen de connaître ses variables ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
En fait, le truc c'est qu'il faut connaitre tes variables, là je l'ai appelé $portfolio_theme parce que c'est comme ça que s'appelle ta colonne dans la table SQL, mais ça n'a pas l'air d'être forcément le même nom dans ton code PHP...
  • Commenter cette réponse |
Score
0
òh
òi
|
OmaR a dit :
Dans ce cas, tu ferais une comparaison de tes données.
  1. if ($porfolio_theme == "architecture/immobilier")
  2. {
  3. echo "... ton lien...";
  4. }


(à noter que tu pourrais aussi le faire pour ta photo, en comparant le porfolio_id par exemple)


J'ai mis ça dans "portfolio.inc.php" (mon thème étant "chantiers") :
  1. <?if ($porfolio_theme == "chantiers" )
  2. {
  3. echo "<br><br><a href='recherche.php?type_rubrique=&type_recherche=mc&question=chantier%2Blouvre'>Voir aussi le thème Ville/Urbanisme (Construction de la pyramide)</a>";
  4. }?>

Mais le lien ne s'affiche plus. J'ai essayé aussi avec l'id mais rien non plus. Vois-tu une erreur d'écriture ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Dans ce cas, tu ferais une comparaison de tes données.
  1. if ($porfolio_theme == "architecture/immobilier")
  2. {
  3. echo "... ton lien...";
  4. }


(à noter que tu pourrais aussi le faire pour ta photo, en comparant le porfolio_id par exemple)
  • Commenter cette réponse |
Score
0
òh
òi
|
Alors je vais remettre mon gros code dans la bdd ;) 

Mais l'idée d'intervenir sur le fichier portfolio.inc.php m'intéresse pour d'autres cas (quand je souhaiterai que le lien s'applique à une rubrique seulement par ex). Dans ce cas tu as idée de la syntaxe à insérer ? (je peux envoyer un plus grand extrait de ma page portfolio.inc.php si besoin)

Tu me dis si je te fatigue!
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Ah, tu ne voulais que ça fonctionne que pour une seule photo ! J'avais pas compris ça comme ça désolé...
Du coup... met ça directement en base de données comme tu avais fait.
Désolé :( 
  • Commenter cette réponse |
Score
0
òh
òi
|
OmaR a dit :
Bah en fait, le lien que tu mets est valide pour toutes les images, donc si tu regardes n'importe quel image, tu auras cet exact lien.
Du coup, il faut que tu le paramètres ton lien, avec qu'il soit valide pour toutes les photos du portfolio.

Mettre par exemple:
<?echo "<br><br><a href='$book/portfolio.php?rub=$portfolio_rubrique'>Voir aussi le thème $portfolio_rubrique</a>";?>


Le soucis, c'est qu'on peut pas deviner le nom de la variable qui contient la valeur de "portfolio_rubrique", donc j'ai mis $portfolio_rubrique, mais c'est peut être autre chose

En effet, le lien était sous chaque image!
J'ai essayé ton code mais ça ne limite pas l'action du lien. De toute façon ce que je voulais c'était que le lien ne marche que sous UNE SEULE photo, je suppose donc qu'il faut écrire quelque part quelque chose comme "image_id=l'id de mon image"... Non ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Bah en fait, le lien que tu mets est valide pour toutes les images, donc si tu regardes n'importe quel image, tu auras cet exact lien.
Du coup, il faut que tu le paramètres ton lien, avec qu'il soit valide pour toutes les photos du portfolio.

Mettre par exemple:
<?echo "<br><br><a href='$book/portfolio.php?rub=$portfolio_rubrique'>Voir aussi le thème $portfolio_rubrique</a>";?>


Le soucis, c'est qu'on peut pas deviner le nom de la variable qui contient la valeur de "portfolio_rubrique", donc j'ai mis $portfolio_rubrique, mais c'est peut être autre chose
  • Commenter cette réponse |
Score
0
òh
òi
|
OmaR a dit :
Ok, donc ça doit être le echo "$affiche_titre" qui affiche ton titre.
Donc tu peux ajouter ton lien en dessous:
echo "<br><br><a href='TONLIEN'>LE-TEXTE</a>";

Bonjour,
j'ai inséré ça dans le fichier "portfolio.inc.php" :
<?echo "<br><br><a href='recherche.php?type_rubrique=&type_recherche=mc&question=chantier%2Blouvre'>Voir aussi le thème Ville/Urbanisme (Construction de la pyramide)</a>";?>
Et j'ai inséré "Chantier du Grand Louvre-panorama 1987" à la ligne "titre" dans la bdd:


L'image qui apparaît sur mon site comporte un titre de 2 lignes :
la 1ère ligne est le texte inséré dans la bdd en tant que titre (Chantier du Grand Louvre-panorama 1987);
la 2ème ligne est le texte du lien mis dans "portfolio.inc.php" (Voir aussi le thème Ville/Urbanisme (Construction de la pyramide)). Si vous voulez voir ce que ça donne, c'est ici:
http://www.serge-sautereau.com/serge-sautereau.com/book...

Donc ça marche mais je ne comprends vraiment pas comment c'est possible que le lien puisse apparaître sous cette photo-là alors que la ligne de code ajoutée dans "portfolio.inc.php" ne comporte ni le portfolio_id, ni le nom de la photo, ni le titre mis dans la bdd (Chantier du Grand Louvre-panorama 1987) ??
Comment un tel prodige est-il possible ?

  • Commenter cette réponse |
Score
0
òh
òi
|
Merci! J'essaie demain et je te raconte...
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Ok, donc ça doit être le echo "$affiche_titre" qui affiche ton titre.
Donc tu peux ajouter ton lien en dessous:
echo "<br><br><a href='TONLIEN'>LE-TEXTE</a>";
  • Commenter cette réponse |
Score
0
òh
òi
|
OmaR a dit :
Dans la base de données, tu auras juste le titre sous format texte comme tu avais avant.
Et dans ton fichier portfolio.php ou portfolio.inc.php, je ne sais pas lequel, il faut retrouver l'endroit où ton titre est affiché, afin d'y ajouter un lien en utilisant la valeur de portfolio_rubrique dans le lien.

Finalement comme j'avais 5 minutes j'ai regardé. Voici le fragment de code qui ressemble le plus à ça :

<? include"../include/ouvrir_bordure.inc.php"; ?>
<img src="../<?echo $book."/photos/".$portfolio_photo_0;?>" alt="<? echo $affiche_titre; ?>" border="0">
<?include"../include/fermer_bordure.inc.php";?>
<br><b><?echo"$affiche_titre";?>

J'avoue ne pas savoir où ni comment mettre un lien dedans !
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci de vos réponses. J'essaierai demain et je n'hésiterai pas à redemander de l'aide si je n'y arrive pas!
  • Commenter cette réponse |
Score
0
òh
òi
|
Tout à fait. Il n'y a aucune modification de la base de données. Juste la génération du lien qui sera faite dans le php.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Dans la base de données, tu auras juste le titre sous format texte comme tu avais avant.
Et dans ton fichier portfolio.php ou portfolio.inc.php, je ne sais pas lequel, il faut retrouver l'endroit où ton titre est affiché, afin d'y ajouter un lien en utilisant la valeur de portfolio_rubrique dans le lien.
  • Commenter cette réponse |
Score
0
òh
òi
|
crazycat@idn a dit :
Pour bien faire, il faudrait suivre ce que te dit OmaR, c'est à dire utiliser la valeur du champ portfolio_rubrique (et/ou de portfolio_theme) pour générer tes liens.
Car si jamais tu décides de changer ta photo de rubrique ou de thème, avec ta solution, il faut que tu n'oublies surtout pas de modifier son titre.
Avec la solution d'OmaR (et c'est bien la plus logique), ça se fait seul. Et aussi chaque fois que tu ajoutes une image, le lien est généré sans que tu n'aies à forcer l'url.

Hem, n'oubliez pas que je ne suis pas un pro...
Et, pourrais-tu me dire, par exemple, ce que tu changerais dans la table ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Pour bien faire, il faudrait suivre ce que te dit OmaR, c'est à dire utiliser la valeur du champ portfolio_rubrique (et/ou de portfolio_theme) pour générer tes liens.
Car si jamais tu décides de changer ta photo de rubrique ou de thème, avec ta solution, il faut que tu n'oublies surtout pas de modifier son titre.
Avec la solution d'OmaR (et c'est bien la plus logique), ça se fait seul. Et aussi chaque fois que tu ajoutes une image, le lien est généré sans que tu n'aies à forcer l'url.
  • Commenter cette réponse |
Score
0
òh
òi
|
Bon, pour que ce soit fait de façon orthodoxe, que faut-il faire ? Je veux bien aussi le lien vers un tuto si nécessaire (du moment que tu ne me dises pas de suivre une formation complète... )
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Oui oui, je sais que tu n'y as pas touché. Mais je t'ai dit que ça aurait été plus simple de modifier le fichier portfolio.php ou portfolio.inc.php que de modifier la base de données.
Mais c'est pas grave :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Mais je n'ai pas touché aux fichiers portfolio.php ni portfolio.inc.php. J'ai inséré le code ici (dans la ligne en surbrillance):


Désolé mais il y a vraiment quelque chose que je ne sais pas. Je suis un peu obtus [:tarzzzane:2]... mais je vais finir par comprendre!
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Dans ton fichier portfolio.php, celui dans lequel tu as ajouté le lien quoi
  • Commenter cette réponse |
Score
0
òh
òi
|
OmaR a dit :
Ca évite de stocker du code HTML dans la base de données.
Et puis, imaginons que tu veuilles ajouter un attribut à ton lien (exemple, ajouter class="lien" ou n'importe quoi), si c'est stocké dans la base de données, tu dois modifier tous les éléments de ta base de données. Si c'est stocké dans le fichier, tu ne dois modifier que ce fichier.

Mais bon, tu peux rester comme ça :) 

Mais, heuuu, quand tu dis "Si c'est stocké dans le fichier", de quel fichier s'agit-il ? :??: 
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Ca évite de stocker du code HTML dans la base de données.
Et puis, imaginons que tu veuilles ajouter un attribut à ton lien (exemple, ajouter class="lien" ou n'importe quoi), si c'est stocké dans la base de données, tu dois modifier tous les éléments de ta base de données. Si c'est stocké dans le fichier, tu ne dois modifier que ce fichier.

Mais bon, tu peux rester comme ça :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Une question de néophyte:qu'est-ce que je gagne en faisant ce que tu dis, étant donné qu'actuellement le lien fonctionne ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Hmm... en fait tu as stocké tout le code HTML dans la base de données, c'était pas le but.
Il fallait stocker juste le lien, exemple "http://www.../..../"
Et après, dans le code HTML de ta page, tu faisais un lien <a href="CE-QUE-TU-RECUPERES-DE-LA-BDD">LE-TITRE</a>
  • Commenter cette réponse |
Score
0
òh
òi
|
(suite)
Bon, et bien finalement, après 2 heures d'essais, ça marche avec ce code:

Chantier du Grand Louvre - panorama 1987<br><br><a href=\'../book/recherche.php?type_rubrique=&type_recherche=mc&question=chantier%2Blouvre\'>Voir aussi le thème Ville/Urbanisme (Construction de la pyramide)</a>

Si vous voulez voir, c'est ici :
http://www.serge-sautereau.com/serge-sautereau.com/book...


Je suppose que mon problème était vraiment simple... En tout cas merci à Omar!

Au revoir.
  • Commenter cette réponse |
Score
0
òh
òi
|
oui, il y a plusieurs rubriques (et sous-rubriques) dans la bdd.
Ce sera sans doute plus clair si j'indique l'adresse de la page problématique :
http://www.serge-sautereau.com/serge-sautereau.com/book...

Dans la 2ème ligne du titre ((Voir aussi le thème Ville/Urbanisme (Construction de la pyramide)) je voudrais insérer un lien qui pointe vers la rubrique "Ville/Urbanisme (Construction de la pyramide)".
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Mais je suppose que tu as plusieurs rubriques quand même. Tes rubriques sont stockées dans ta base de données ?
Après, si les liens pour accéder aux photos de telle ou telle rubrique sont très différents les uns des autres, autant ajouter les liens dans la base de données.
Sinon, si par exemple les photos de la rubrique urbanisme sont dans http://www.tonsite.com/photos/urbanisme/ et si les photos de ta 2ème rubrique sont dans http://www.tonsite.com/photos/autre_rubrique
Tu n'as pas forcément besoin de stocker les liens, mais tu peux faire un lien en utilisant le nom de la rubrique.

Donc, comme tu peux le voir, faudrait avoir un peu plus d'informations sur ta base de données et tes données en général. D'ailleurs, si tu as un lien vers ton site, ça peut aider.
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,
Merci de m'avoir répondu.
Je pensais à un usage unique (sous une photo donnée, le titre serait du style "voir aussi les photos de la rubrique URBANISME" et pointerait vers le dossier en question par clic). Mais ça changerait quelque chose sur la manip à faire dans la bdd ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

Le lien changerait en fonction du titre je suppose ?
Il faudrait ajouter une colonne dans ta base de données qui contient le lien, ensuite, dans la boucle qui affiche les résultats, au lieu de faire un echo du titre.
Tu fais quelque chose dans le genre: echo "<a href=\"$lien\">$titre</a>";
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS