[Modéré] Lister le contenu d'une table SQL

Rechercher

[Modéré] Lister le contenu d'une table SQL

Par paintbox  -  2 reponses  -  Le 08/04/2009 23:02  -  Editer  - 

Bonjour,

toujours débutant, je me trouve devant un problème.

J'ai créé une table SQL nommée images qui contient une colonne référence produits, une colonne lien image et encore d'autres colonnes mais que je ne souhaite pas voir apparaitre sur ma page. J'ai pour l'instant 10 articles dans ma base

Voici mon code

Avec celui-ci, mes 10 articles apparaissent.

<?php
include ("connexion.inc.php");
  $idcom=connex("mabd", "myparam");
  $requete="SELECT reference, images_bd FROM images";
  $result=@mysql_query($requete, $idcom) or die (mysql_error());
  if(!$result)
    {
      echo "Lecture impossible";
    }
    else
    {
      $nbcol=mysql_num_fields($result);
      $nbart=mysql_num_rows($result);
      echo "<h2>Il y a $nbart articles</h2>";
      echo "<table border=1' size='800px'>";
      echo "<tr>";
    while($donnees=mysql_fetch_array($result))
      {
      echo "<td>".$donnees['reference']."</td>";
      echo "<td> <img src=".$donnees['images_bd']."></td>";
      echo "</tr>";
      }
      echo "</table>";
    }
    mysql_free_result($result);
    ?>
</body>
</html>

Je souhaite qu'en cliquant sur la reference d'un produit on accède à sa fiche. J'ai donc remplacé la ligne

echo "<td>".$donnees['reference']."</td>";

par

echo "<td><a href='fiche.php?id=".$donnees['reference'].">".$donnees['reference']."</td>";

Du coup, je n'ai plus que 5 articles qu s'affichent. Je ne comprends pas pourquoi?

Merci pour votre aide.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 09/04/2009 07:33  -  Haut de page  - 

Il y a une mauvaise utilisation des quotes dans ta ligne : au lieu de

echo "<td><a href='fiche.php?id=".$donnees['reference'].">".$donnees['reference']."</td>";

essaye plutôt :

echo '<td><a href="fiche.php?id='. $donnees['reference'] .'">'. $donnees['reference'] .'</td>' . "\n";

Observe bien les détails et regarde le code source généré dans ta page en comparantle résultat de ton code original et celui-ci.

Un point est important : pars toujours du résultat que tu veux obtenir : en (X)HTML, les valeurs d'attribut doivent être entre guillemets (") et non entre apostrophes (') : donc, ça devrait au final ressembler à :

<td><a href="fiche.php?id=1">1</td>

Prends la chaine au complet et mets-là entre apostrophes dans ton «echo» :

echo '<td><a href="fiche.php?id=1">1</td>';

Ensuite, il te reste à remplacer les valeurs en dur par les variables correspondante en faisant une concaténation : ici on remplace le « 1 » par « '. $donnees['reference'] .' » : ici, pas de comflit entre les apostrophes encadrant la variable et celles encadrant l'index de ton tableau. Si tu as un doute, alors utilise des guillemets pour l'index de façon à avoir une alternance et tu mets « '. $donnees["reference"] .' »

Au final, tu auras le code que j'ai indiqué au départ.

 

 
Par paintbox  -  Le 09/04/2009 20:54  -  Haut de page  - 

Hello Cyrano,

 

une fois de plus, merci pour tes précieux conseils. Cela fonctionne beaucoup mieux. Je dois avouer que je m'enmêle un peu avec les quotes.

Encore deux questions:

lorsque l'on clique sur la référence du produit, sa fiche apparit sur une autre page. Est-ce mieux de gérer tout cela au moyen de fonctions ou de classes ou bien ma méthode est la bonne ?

Et depuis la fiche produit ouverte si je veux retourner sur ma page avec tous mes produits au moyen d'un bouton "retour page" comment puis-je faire?

Encore un grand merci !

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |