Ajouté un lien sur une information venant d'une BDD.

Résolu/Fermé
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 - 26 mars 2013 à 18:23
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 - 4 mai 2013 à 14:51
Bonjour,

Je réalise actuellement un site dans le but d'éditer des dessins d'un artiste.
Je suis bloqué sur ; comment insérer un lien sur une information venant d'une Base de donnée.
Pour mieux comprendre mon problème je vais développer un peu x).
Voici ma page de code :

<?php 
require_once("connexiondessins.inc.php");
$reponse = $bdd->query('SELECT categorie,titre,image FROM dessins WHERE categorie="sports"');
?>
<!DOCTYPE HTML>
<html>
<link rel="shortcut icon" title="crobara2bal" type="image/png" href="mafavicon.png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sports / Tous les dessins concernant le Sport</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssports">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="sports.php" title="recharger la page"><h1 class="titre1">Sports</h1></a>
 <div id="textesports">
 <p class="texte2">Ici vous trouverez tous ce qui est concerne le sport en dessins.</p>
 </div>
 <?php while ($dessins = $reponse->fetch())
 {
 ?>
<div class="cat1">
  <?php echo "<span class='classtext1v'>".$dessins['categorie']."</span>"; ?>
  <br />
  <?php echo "<span class='classtext2v'>".$dessins['titre']."</span>"; ?>
  <br />
  <img src="images/<?php echo $dessins['image'];?>" width="200" height="250"/>
</div>
<? } $reponse->closeCursor(); ?>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


Pour voir la page en question du site : ( http://crobara2bal.com/sports.php )

J'aimerais pouvoir clicker sur le titre ou l'image par exemple, pour accéder a une autre page qui m'affichera le dessins que j'ai selectionné en plus grand avec toutes les informations qui sont liée grâce à ma base de donnée.

je pense bien a <a href=""> mais je ne vois pas comment le placer :/.

Merci pour votre attention et de votre aide.


A voir également:

5 réponses

ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
26 mars 2013 à 18:37
Bonsoir,

Il te suffit (si j'ai bien compris ta demande?) de rajouter le lien sur l'image :
<a href="images/<?php echo $dessins['image'];?>"><img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a>

Et si tu as besoin de faire ouvrir l'image dans un nouvel onglet, il faut rajouter dans la balise <a> un target="_blank"
Cdlt.
1
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
26 mars 2013 à 18:58
Tout d'abord merci pour ton intérêt à mon problème :),
L'action n'est pas celle que je recherche mais m'aide déja a comprendre un peu mieux.
Au Lieu d'afficher l'image en grand je souhaiterai qu'elle s'affiche sur une nouvelle page identique, mais qui n'affiche que mon image en plus grand selectionné, avec sa catégorie, son titre, et sa description.

Merci encore pour ton aide :).
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
26 mars 2013 à 19:35
Alors il faut adopter une nouvelle architecture et modifier le lien cité en exemple en conséquence.
Il faut créer un fichier que tu nommeras par exemple detail.php dans lequel tu afficheras la photo avec son titre et sa description en reprenant les données par la méthode GET et donc modifier la cible du lien :
<a href="detail.php?categorie=<?php echo $dessins['categorie']; ?>&amp;titre=<?php echo $dessins['titre']; ?>&amp;image=<?php echo $dessins['image']; ?>"><img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a>

Et dans le fichier detail.php :
Catégorie :<?php echo $_GET['categorie']; ?>
Titre : <?php echo $_GET['titre']; ?>
<img src="images/<?php echo $_GET['image']; ?>" alt="" />

A toi de faire la mise en forme CSS des éléments de la page detail.php

Cdlt.
0
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
27 mars 2013 à 15:11
Bonjour ReDLoG,
J'ai suivi tes conseils, :) je te remercie c'est exactement ce que je faire, mais quelque petite erreur son au rendez-vous :s.
1-Lorsque je suis sur ma page sports.sps le nom de la catégorie et du titre ne s'affiche plus :/

Page en question : http://www.crobara2bal.com/sports.php

code de la page :
<?php 
require_once("connexiondessins.inc.php");
$reponse = $bdd->query('SELECT categorie,titre,image FROM dessins WHERE categorie="sports"');
?>
<!DOCTYPE HTML>
<html>
<link rel="shortcut icon" title="crobara2bal" type="image/png" href="mafavicon.png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sports / Tous les dessins concernant le Sport</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssports">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="sports.php" title="recharger la page"><h1 class="titre1">Sports</h1></a>
 <div id="textesports">
 <p class="texte2">Ici vous trouverez tous ce qui est concerne le sport en dessins.</p>
 </div>
 <?php while ($dessins = $reponse->fetch())
 {
 ?>
<div class="cat1">
<a href="selection.php?categorie=<?php echo $dessins['categorie']; ?>
<br />
&amp;titre=<?php echo $dessins['titre']; ?>
<br />
&amp;image=<?php echo $dessins['image']; ?>">
<br />
<img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a>
</div>
<? } $reponse->closeCursor(); ?>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


2-Lorsque je rentre dans ma page detail.php ( que j'ai appelé selection.php ) la catégorie,le titre et l'image s'affiche bien, mais le descriptif n'est pas apparent :/

code de la page :
<?php 
require_once("connexiondessins.inc.php");
$reponse = $bdd->query('SELECT * FROM dessins');
?>
<!DOCTYPE HTML>
<html>
<link rel="shortcut icon" title="crobara2bal" type="image/png" href="mafavicon.png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sports / Tous les dessins concernant le Sport</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssports">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="sports.php" title="recharger la page"><h1 class="titre1">Sports</h1></a>

 <div id="textesports">
 <?php echo $_GET['categorie']; ?>
 <br />
 <?php echo $_GET['description']; ?>
 </div>
 <?php echo $_GET['titre']; ?>
  <br />
 <img src="images/<?php echo $_GET['image']; ?>" width="1162px" height="816px"/>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


Je continue a chercher de mon cotés, merci pour ta patience xD et de ton aide :).
Sincèrement.
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
27 mars 2013 à 16:42
Qui est-ce qui t'a demandé de faire ça ?
<div class="cat1">
<a href="selection.php?categorie=<?php echo $dessins['categorie']; ?>
<br />
&amp;titre=<?php echo $dessins['titre']; ?>
<br />
&amp;image=<?php echo $dessins['image']; ?>">
<br />
<img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a>
</div>

Pas moi en tout cas car je t'ai proposé le code modifié du lien, tu n'avais qu'à faire un copié/collé, donc je le remets encore une fois (code à intégrer tel quel) :
<div class="cat1">
  <?php echo "<span class='classtext1v'>".$dessins['categorie']."</span>"; ?>
  <br />
  <?php echo "<span class='classtext2v'>".$dessins['titre']."</span>"; ?>
  <br />
  <a href="selection.php?categorie=<?php echo $dessins['categorie']; ?>&amp;titre=<?php echo $dessins['titre']; ?>&amp;image=<?php echo $dessins['image']; ?>"><img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a>
</div>

Ensuite pour le second problème de descriptif qui ne s'affiche pas, c'est tout à fait normal puisque de la page où tu viens (sports.php), il n'y a pas de sélection du descriptif donc on en peut pas faire transiter ça par l'url à la page selection.php. Donc il faut rajouter l'id de l'enrtegistrement da
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
Modifié par ReDLoG le 27/03/2013 à 17:02
Qui est-ce qui t'a demandé de faire ça ?
<div class="cat1"> 
<a href="selection.php?categorie=<?php echo $dessins['categorie']; ?> 
<br /> 
&titre=<?php echo $dessins['titre']; ?> 
<br /> 
&image=<?php echo $dessins['image']; ?>"> 
<br /> 
<img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a> 
</div>

Pas moi en tout cas car je t'ai proposé le code modifié du lien, tu n'avais qu'à faire un copié/collé, donc je le remets encore une fois (code à intégrer tel quel un peu plus bas).
Ensuite pour le second problème de descriptif qui ne s'affiche pas, c'est tout à fait normal puisque de la page où tu viens (sports.php), il n'y a pas de sélection du descriptif donc on ne peut pas faire transiter ça par l'url à la page selection.php. Donc il faut rajouter l'id de l'enregistrement dans le lien et modifier la requête dans la page sports.php :
$reponse = $bdd->query('SELECT id,categorie,titre,image FROM dessins WHERE categorie="sports"');

Puis tu rajoutes dans le lien :
<div class="cat1"> 
  <?php echo "<span class='classtext1v'>".$dessins['categorie']."</span>"; ?> 
  <br /> 
  <?php echo "<span class='classtext2v'>".$dessins['titre']."</span>"; ?> 
  <br /> 
  <a href="selection.php?id=<?php echo $dessins['id']; ?>&amp;categorie=<?php echo $dessins['categorie']; ?>&titre=<?php echo $dessins['titre']; ?>&image=<?php echo $dessins['image']; ?>"><img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a> 
</div>

Ensuite dans la page sports.php, tu fais une requête pour extraire le descriptif à partir de l'id de l'enregistrement :
$req = $bdd->query('SELECT descriptif FROM dessins WHERE id="'.$_GET['id'].'"');
$data = $req->fetch();

Et tu récupères le résultat de la requête (descriptif) pour l'afficher avec le reste :
<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssports">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="sports.php" title="recharger la page"><h1 class="titre1">Sports</h1></a>

<div id="textesports">
<?php echo $_GET['categorie']; ?><br />
<?php echo $_GET['description']; ?>
</div>
<?php echo $_GET['titre']; ?><br />
<?php echo $data['descriptif']; ?><br />
 <img src="images/<?php echo $_GET['image']; ?>" width="1162px" height="816px"/>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>

J'espères que tu as compris le cheminement, parfois il est possible que je m'embrouille un peu...
Je n'ai pas testé donc il est possible que quelques erreurs de syntaxe apparaissent au moment du test, mais ça ce n'est pas trop difficile à corriger...
Cdlt.
0
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
29 mars 2013 à 12:24
Bonjour, merci beaucoup pour ton exemple,
Si j'ai bien compris sa devrai donner ça :
( pour des questions de sécurité j'ai réalisé ce test sur 2 autres pages identique mais d'une autre catégorie )
page : meilleurs.php ( sports.php)

<?php 
require_once("connexiondessins.inc.php");
$reponse = $bdd->query('SELECT id,categorie,titre,image FROM dessins WHERE categorie="meilleurs"');
?>
<!DOCTYPE HTML>
<html>
<link rel="shortcut icon" title="crobara2bal" type="image/png" href="mafavicon.png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Les Meilleurs / Les meilleurs séléction des dessins</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpsmeilleurs">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="meilleurs.php" title="recharger la page"><h1 class="titre1">Les Meilleurs</h1></a>
 <div id="textemeilleurs">
 <p class="texte2">Ici vous trouverez les meilleurs sélections des dessins de crobara2bal !</p>
 </div>
<?php while ($dessins = $reponse->fetch())
 {
 ?>
<div class="cat1"> 
  <?php echo "<span class='classtext1v'>".$dessins['categorie']."</span>"; ?> 
  <br /> 
  <?php echo "<span class='classtext2v'>".$dessins['titre']."</span>"; ?> 
  <br /> 
  <a href="selectionmeilleurs.php?id=<?php echo $dessins['id']; ?>&amp;categorie=<?php echo $dessins['categorie']; ?>&titre=<?php echo $dessins['titre']; ?>&image=<?php echo $dessins['image']; ?>"><img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a> 
</div>
<? } $reponse->closeCursor(); ?>
</div>
<?php include("footer.inc.php"); ?>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


et voici ma page selectionmeilleurs.php ( selection.php )

<?php 
require_once("connexiondessins.inc.php");
$req = $bdd->query('SELECT descriptif FROM dessins WHERE id="'.$_GET['id'].'"');
$data = $req->fetch();
?>
<!DOCTYPE HTML>
<html>
<link rel="shortcut icon" title="crobara2bal" type="image/png" href="mafavicon.png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Meilleurs / Les meilleurs séléctions des Bandes Dessinées de Crobara2bal.</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssports">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="meilleurs.php" title="recharger la page"><h1 class="titre1">Les Meilleurs</h1></a>
 <div id="textesports">
<?php echo $_GET['categorie']; ?><br />
<?php echo $_GET['description']; ?>
</div>
<?php echo $_GET['titre']; ?><br />
<?php echo $data['descriptif']; ?><br />
 <img src="images/<?php echo $_GET['image']; ?>" width="1162px" height="816px"/>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


une erreur s'affiche :
Fatal error: Call to a member function fetch() on a non-object in /home/croba286/public_html/selectionmeilleurs.php on line 4

Encore une fois merci pour ton aide, je ne comprend pas encore tres bien tous ces messages d'erreur pour les corriger.

Sincèrement.
0
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
2 avril 2013 à 16:41
help :/ svp
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
2 avril 2013 à 16:59
Re,

Plus habitué au mysql qu'à PDO j'ai peut-être fait une erreur, alors il faut modifier la requête dans la page selectionmeilleurs.php :
<?php 
require_once("connexiondessins.inc.php");
$req = $bdd->prepare('SELECT descriptif FROM dessins WHERE id="'.$_GET['id'].'"');
$req->execute();
$data = $req->fetch(PDO::FETCH_ASSOC);
?>

Le reste du code PHP ne change pas.
Cdlt.
0
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
3 avril 2013 à 18:24
Bonjour reDloG,
Merci encore pour ton intêret à mon problème :)

Il y à toujour les mêmes soucis :/ même après avoir appliqué la nouvelle requête que tu ma proposé, certaine image ne s'affiche pas, le titre manque, et la description ne s'affiche pas jusqu'au bout ( pour certain dessin et pas d'autre :s je ne sais pas pourquoi pourtant aucune erreur dans les bases de données les titre catégorie etc corresponde bien )
J'essaye de trouver des solutions via des cours ou tutoriels qui se base sur la pdo et son fonctionnement, mais pas simple :s.
sur ce,
merci de ton aide :)
Sincèrement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
4 mai 2013 à 14:51
Bonjour,
Voici la solution que j'ai trouvé si sa peut en aider certains qui serait dans la même galère que moi ^^

ma page qui affiche les infos d'une vignette :

selectiondivers.php :

<?php 
require_once("connexiondessins.inc.php");
$req = $bdd->prepare('SELECT categorie,titre,image,description FROM dessins WHERE id="'.$_GET['id'].'"');
$req->execute($data);
$data = $req->fetch(PDO::FETCH_ASSOC);
?>
 <div id="texteselection">
<?php echo '<span class="classtext1v">'.htmlspecialchars($data['categorie']).'</span>'; ?>
<br />
<?php echo '<span class="classtext2v2">'.htmlspecialchars($data['titre']).'</span>'; ?>
</div>
<div id="ajustementdescription">
<?php echo '<span class="classtext5v">'.htmlspecialchars($data['description']).'</span>'; ?>
 </div>
  <div id="ajustementimage">
 <img src="images/<?php echo htmlspecialchars($data['image']); ?>" width="800px" height="auto"/>
  </div>


Voilà ^^.
0