Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1556 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comment créer un lien avec des éléments d'une base de données?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment créer un lien avec des éléments d'une base de données?

n°2236926
audrey005
Posté le 03-09-2014 à 15:30:54  profilanswer
 

Bonjour,
 
Je débute en php et j'aimerais faire mon site moi-même.
Sur la page "recette" de mon site, il y a une liste déroulante reprenant toutes les catégories de recettes reprises dans la table "tblcategorie" (idCat et nomCat). Lorsque qu'on a choisit sa catégorie et qu'on clique sur ok, les différentes recettes reprises dans cette catégorie sélectionnée s'affichent une en dessous de l'autre sous forme de tableau avec la photo de la recette, le nom de la recette, la catégorie, le temps de préparation, de cuisson et la difficulté (tblrecettes, nomRecettes...)
 
Jusque là, tout se passe bien et tout s'affiche correctement.
 
Ce que j'aimerais, c'est que quand on clique sur la photo ou sur le nom de la recette, un lien nous envoie à une page avec la recette complète (style marmiton: http://www.marmiton.org/recettes/r [...] t&type=all) mais je n'y arrive pas  :??:
 

Code :
  1. <?php
  2. extract($_GET);
  3. if(!isset($idCat)) {
  4. $idCat= "29";
  5. }
  6. ?>
  7. // pour afficher les catégorie dans ma liste déroulante
  8. <?php
  9. function listeCat($idCat) {
  10. $sql = "select *
  11.   from tblcategories
  12.   order by nomCat" ;
  13. $rs = mysql_query($sql)
  14.   or die("Erreur de requête : $sql" ) ;
  15. ?>
  16. <form method="get" action="" >
  17.     <input type="hidden" name="page" value="06" />
  18.    
  19.     <select name="idCat" class="select">
  20.      <?php
  21.         while ($row = mysql_fetch_array($rs)) {
  22.   extract($row) ;
  23.   $buf = "" ;
  24.   if ($id == $idCat) {
  25.    $buf = "selected" ;
  26.   }
  27.   ?>
  28.             <option <?php print $buf ?> value="<?php print $idCat ?>">
  29.   <?php print $nomCat ?>
  30.             </option>
  31.   <?php
  32.  }
  33.  ?>
  34.     </select>
  35.     <input type="submit" value=" ok " />
  36.     </form>
  37.     // pour afficher les catégorie dans ma liste déroulante
  38.     <?php   
  39. }
  40. ?>
  41. [#FF8D00]    // pour afficher les recettes de la catégorie sélectionnée
  42. <?php
  43. function listeRecettes($idCat) {
  44. $sql = "SELECT R.*, P.*
  45.   FROM tblrecettes R
  46.   INNER JOIN tblcategories P
  47.   ON R.idCat = P.idCat
  48.   WHERE P.idCat = $idCat
  49.   ORDER BY R.nomRecettes ";
  50. $rs = mysql_query($sql) or die ("Erreur de requête:$sql" );
  51.  print "<table>" ;
  52. $i=1 ;
  53. while($row=mysql_fetch_array($rs)) {
  54.  extract($row) ;
  55.   $photos       = $_FILES["photos"] ;
  56.  if (($i % 2 ) == 0) {
  57.   $classe = "paire" ;
  58.  } else {
  59.   $classe = "impaire" ;
  60.  }
  61. ?>
  62. [#FF8D00]    // Le tableau avec toutes les recettes
  63.    
  64. <br /><br /><p class="titre_recettes">
  65.    
  66.  <tr class="<?php print $classe;?>">
  67.          <th rowspan="2" valign="middle" ><a href="index.php?page=23"><img src="<?php print $photos ;?>" class="photo" /></th>
  68.          <th valign="middle"><?php print $nomRecettes;?> (<?php print $nomCat ;?> )</th>
  69. </tr>
  70.      
  71.            
  72.         <tr class="<?php print $classe;?>">
  73.            <td valign="top">Temps de pr&eacute;paration: <?php print $temps_prepa;?> - Temps de cuisson: <?php print $temps_cuisson;?><br />Difficult&eacute;: <?php print $difficulte;?></td>
  74. </tr>
  75.  <?php
  76.  $i++ ;
  77. }
  78. print "</table>" ; 
  79. }
  80. ?>
  81. </head>
  82. <body>
  83. <?php
  84. include "include/connexion.inc.php" ;
  85. ?>
  86. <article>
  87. <label for="categorie" class="select">Rechercher par cat&eacute;gorie</label>
  88. [#FF8D00]    // Afficher le tableau sur la page
  89. <?php
  90. listeCat($idCat) ;
  91. listeRecettes($idCat) ;
  92. ?>
  93. </article>
  94. </body>
  95. </html>


 
J'espère avoir été clair et d'avance merci ;-)

mood
Publicité
Posté le 03-09-2014 à 15:30:54  profilanswer
 

n°2236929
rufo
Pas me confondre avec Lycos!
Posté le 03-09-2014 à 15:49:32  profilanswer
 

extract($_GET) est à proscrite pour des raisons de sécurité :o
 
Pour ton lien, il fuat avoir un scirpt chargé d'afficher la recette qui prend en paramètre GET l'id de la recette.  
genre : http://tonsite.fr/recette.php?id=xxxx
Donc, quand tu affiches ton tableau, ton code php va aussi écrire un lien html <a> ayant pour "src" http://tonsite.fr/recette.php?id=xxxx où xxxx est l'id en cours de lecture dans ta BD (dans la variable $row).
 
Dans ton script recette.php, le premier truc sera de récupérer l'ID passé en GET puis de recherche le contenu associé à cette ID en BD et de l'afficher comme tu veux :)
 
L62 : $photos       = $_FILES["photos"] ;
-> je le sens pas ce truc :/ $_FILES est créé quand t'as un form de type upload de fichier. Je doute que ça soit ce que tu veux faire.
 
D'une manière générale, tu devrais éviter extract().
 
Je te recommande aussi de regarder le design pattern MVC car tu mélange ton HTML et ton PHP et ça, c'est pas top pour la maintenance et la relecture du code...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comment créer un lien avec des éléments d'une base de données?

 

Sujets relatifs
Fonctions avec requetes en base MySQLSoucis bouton "précedent" du navigateur et ancre de lien
Base de données Access vers SQL serverAccéder aux données de cette manière : bien ou pas bien ?
créer une image à partir d'une matricelibrairie CImg : créer une image à partir d'une matrice
[Résolu] Lien href qui remplace une page affichée via un includeimprimer plusieurs tickets base excel
import base oracleComment créer un lien avec des éléments d'une base de données?
Plus de sujets relatifs à : Comment créer un lien avec des éléments d'une base de données?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR