Afficher l'article en fonction du titre
Résolu
Caro
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je souhaite afficher sur une premiere page une image et un titre, et quand l'utilisateur cliquera dessus ils sera renvoyer vers la description complete de cet article.
J'affiche bien les titres et images sur la premiere page. Mais la deuxieme ne fonctionne pas.
voici mon code: premiere page
$sql="SELECT * FROM ficheproduit";
try{
$cnx = new PDO(DSN, LOGIN, PASSWORD, $options);
$res=$cnx->query($sql);
while($ligne=$res->fetch())
{
$id=$ligne['id'];
$titre=$ligne['titre'];
$description=$ligne['description'];
$prix=$ligne['prix'];
$titreimage=$ligne['titreimage'];
?>
<li><a href="ficheproduit.php?titre=$titre"></li>
<img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="150" width="150" style="border-radius:15px;"/>
<?php echo "<h3>$titre</h3>Prix : $prix €<br /><br />";?></a><?php
}
Deuxieme page: if(isset($_GET['titre'])){
$titre=$_GET['titre'];
$sql="SELECT * FROM ficheproduit WHERE fiche=$titre";
try{
$cnx = new PDO(DSN, LOGIN, PASSWORD, $options);
$res=$cnx->query($sql);
while($ligne=$res->fetch())
{
$id=$ligne['id'];
$titre=$ligne['titre'];
$description=$ligne['description'];
$prix=$ligne['prix'];
$titreimage=$ligne['titreimage'];
?>
<li><a href="imagesproduits/<?php echo $titreimage; ?>.jpg"/>
<img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="250" width="250" style="border-radius:15px;"/>
</a>
<?php echo "<h3>$titre</h3>Prix : $prix €<br />Description : <em>$description</em><br />";?></a><?php
}
Merci d'avance :/
je souhaite afficher sur une premiere page une image et un titre, et quand l'utilisateur cliquera dessus ils sera renvoyer vers la description complete de cet article.
J'affiche bien les titres et images sur la premiere page. Mais la deuxieme ne fonctionne pas.
voici mon code: premiere page
$sql="SELECT * FROM ficheproduit";
try{
$cnx = new PDO(DSN, LOGIN, PASSWORD, $options);
$res=$cnx->query($sql);
while($ligne=$res->fetch())
{
$id=$ligne['id'];
$titre=$ligne['titre'];
$description=$ligne['description'];
$prix=$ligne['prix'];
$titreimage=$ligne['titreimage'];
?>
<li><a href="ficheproduit.php?titre=$titre"></li>
<img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="150" width="150" style="border-radius:15px;"/>
<?php echo "<h3>$titre</h3>Prix : $prix €<br /><br />";?></a><?php
}
Deuxieme page: if(isset($_GET['titre'])){
$titre=$_GET['titre'];
$sql="SELECT * FROM ficheproduit WHERE fiche=$titre";
try{
$cnx = new PDO(DSN, LOGIN, PASSWORD, $options);
$res=$cnx->query($sql);
while($ligne=$res->fetch())
{
$id=$ligne['id'];
$titre=$ligne['titre'];
$description=$ligne['description'];
$prix=$ligne['prix'];
$titreimage=$ligne['titreimage'];
?>
<li><a href="imagesproduits/<?php echo $titreimage; ?>.jpg"/>
<img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="250" width="250" style="border-radius:15px;"/>
</a>
<?php echo "<h3>$titre</h3>Prix : $prix €<br />Description : <em>$description</em><br />";?></a><?php
}
Merci d'avance :/
2 réponses
-
salut,
dans la page 2 essaye plutot de faire cette requete :
$sql="SELECT * FROM ficheproduit WHERE fiche='".$titre."'";
je pense que ca devrait être mieux avec des quote qui entourent ta chaine ;)
naga-
-
-
-
oui j'ai bien compris ca, mais le truc c'est que tu veux récupérer une valeur. donc en gros ta deuxième page :
if(isset($_GET['titre'])){ $titre=$_GET['titre']; $sql="SELECT * FROM ficheproduit WHERE titre='".$titre."'"; try{ $cnx = new PDO(DSN, LOGIN, PASSWORD, $options); $res=$cnx->query($sql); while($ligne=$res->fetch()) { $id=$ligne['id']; $titre=$ligne['titre']; $description=$ligne['description']; $prix=$ligne['prix']; $titreimage=$ligne['titreimage']; ?> <li><a href="imagesproduits/<?php echo $titreimage; ?>.jpg"/> <img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="250" width="250" style="border-radius:15px;"/> </a> <?php echo "<h3>$titre</h3>Prix : $prix €<br />Description : <em>$description</em><br />";?></a><?php }
c"était titre plutot que titre image.
Ensuite le while n'est pas nécessaire, vu que tu ne veux qu'un seul résultat, mais ca pose pas de problème ^^ -
-
-
Donc x) pour résumer essaye :
PAGE 1$sql="SELECT * FROM ficheproduit"; try{ $cnx = new PDO(DSN, LOGIN, PASSWORD, $options); $res=$cnx->query($sql); while($ligne=$res->fetch()) { $id=$ligne['id']; $titre=$ligne['titre']; $description=$ligne['description']; $prix=$ligne['prix']; $titreimage=$ligne['titreimage']; ?> <li><a href="ficheproduit.php?titre=".$titre></li> <img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="150" width="150" style="border-radius:15px;"/> <?php echo "<h3>$titre</h3>Prix : $prix €<br /><br />";?></a><?php }
PAGE 2
if(isset($_GET['titre']) && !empty($_GET['titre'])) { $titre=$_GET['titre']; $sql="SELECT * FROM ficheproduit WHERE fiche='".$titre."'"; try{ $cnx = new PDO(DSN, LOGIN, PASSWORD, $options); $res=$cnx->query($sql); while($ligne=$res->fetch()) { $id=$ligne['id']; $titre=$ligne['titre']; $description=$ligne['description']; $prix=$ligne['prix']; $titreimage=$ligne['titreimage']; ?> <li><a href="imagesproduits/<?php echo $titreimage; ?>.jpg"/> <img src="imagesproduits/<?php echo $titreimage; ?>.jpg" height="250" width="250" style="border-radius:15px;"/> </a> <?php echo "<h3>$titre</h3>Prix : $prix €<br />Description : <em>$description</em><br />";?></a><?php
il n'y a pas tout la page, il manque les balises <?php en début de page etc.-
-
-
-
c'est donc que le paramètre n'est pas passé. as tu bien changé cette ligne dans la page 1 :
<li><a href="ficheproduit.php?titre=".$titre></li>
en fait il faut dans un premier temps vérifier si le paramètre passé dans ton lien correspond bien (tu ne dois pas avoir ?titre=$titre mais ?titre=le_titre_du_doc)
ensuite il faut que tu sois sûre de ne pas avoir de cactères spéciaux dans ton titre (tel que ', &, [espace],etc.)
enfin, c'est plutot mon avis, je pense qu'il vaut mieux que tu passe l'id en paramètre. soit faire dans ta page 1 :<li><a href="ficheproduit.php?id=".$id></li>
et dans ta page 2 :if(isset($_GET['id']) && !empty($_GET['id'])) { $titre=$_GET['titre']; $sql="SELECT * FROM ficheproduit WHERE id=".$id;
ensuite je t'avous que sans voir vraiment tout (et sans pouvoir tester) c'est un peu délicat ^^ -
-