Afficher l'article en fonction du titre [Résolu/Fermé]

Signaler
-
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
-
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 :/

26 réponses

Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
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
Merci de m'aider j'suis une debutante, apres avoir remplacer par ce que tu m'as dit la deuxieme page ne m'affiche rien
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
as-tu accès à ta base? (avec un requêteur par exemple, un endroit où tu peux tester tes requêtes?) Si oui, fais :
$sql="SELECT * FROM ficheproduit WHERE titre='".$titre."'";
echo $sql;
 


ca te permettra de récupérer la requête que tu vas faire (ca l'affichera dans ta page) et tu pourras la tester.

ps : ta base de donnée est locale (sur ton poste) ou elle est hébergée en ligne?
Je suis sur une base de donnée locale, et oui j'ai testé la requete dans mysql mais voilà:"Requête SQL:

$sql = "SELECT * FROM ficheproduit WHERE titre='".$titre. "'";


MySQL a répondu:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql="SELECT * FROM ficheproduit WHERE titre='".$titre."'"' at line 1"
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
ah et dans ta première page, écris plutot
<a href="ficheproduit.php?titre=".$titre>
Il ne m'affiche plus rien a nouveau
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
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.
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
ahhhhh je suis bête xDDD

ecris ceci :

<li><a href="ficheproduit.php?id=<?php echo $id; ?>"></li> 


[edit]il manquait le ';' [/edit]
OO sa fonctionne .... Heu MERCI beaucoup mais peut tu m'expliqués s'il te plait ?
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
ouaip.
Alors le premier problème était que ton code html ne permet pas d'afficher des variables php directement, ce qu'on faisait pour générer le paramètre à charger pour la page2. donc il fallait rajouter les balises php (<?php ... ?>) afin que le serveur puisse récupérer la variable php et générer ton lien de manière dynamique (vu que ca dépend du nombre d'enregistrements dans ta base ).

Ensuite concernant la requête, au départ il me semble que tu ne requetais pas la bonne colonne. ensuite on a passé plutôt l'identifiant qui lui est unique (c'est certain, rien ne dis que plus tard tu n'auras pas 2 titre identiques), de manière à ce que le comportement de ton site fasse ce que tu souhaite (si on ne l'avait pas fais, tu aurai pu avoir plusieurs images ayant le même titre dans la page, ce qui n'est pas le but vu que tu souhaitais n'afficher qu'une image).

bne continuation.
naga
Merci infiniment :)
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
164
pas de problème, si tu n'as plus de question tu peux passer ton post en résolu ;)

bne journée.
naga