Comment créer un lien avec des éléments d'une base de données?
Fermé
Sid05
Messages postés
19
Date d'inscription
mercredi 3 septembre 2014
Statut
Membre
Dernière intervention
6 novembre 2014
-
Modifié par Sid05 le 3/09/2014 à 15:40
Sid05 Messages postés 19 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 6 novembre 2014 - 18 sept. 2014 à 19:57
Sid05 Messages postés 19 Date d'inscription mercredi 3 septembre 2014 Statut Membre Dernière intervention 6 novembre 2014 - 18 sept. 2014 à 19:57
A voir également:
- Comment créer un lien avec des éléments d'une base de données?
- Créer un lien pour partager des photos - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment creer un pdf - Guide
4 réponses
Tu melanges le HTML et le PHP et c'est imbuvable :
Pour a deuxieme fonction :
Pour afficher tu fais :
Un truc dans le genre ... Je suis pas sur que la deuxième fonction fonctionne !
function listeCat($idCat) { // pour afficher les catégorie dans ma liste déroulante
$sql = "select *
from tblcategories
order by nomCat" ;
$rs = mysql_query($sql)
or die("Erreur de requête : $sql" ) ;
while ($l = mysql_fetch_array($rs))
{
if ($id == $idCat) {
$buf = "selected" ;
}
$option .= "<option $buf value='$idCat'>$nomCat</option>";
}
return "<select name='categorie'> $option </select>";
}
?>
Pour a deuxieme fonction :
function listeRecettes($idCat) { // pour afficher les recettes de la catégorie sélectionnée
$sql = "SELECT R.*, P.*
FROM tblrecettes R
INNER JOIN tblcategories P
ON R.idCat = P.idCat
WHERE P.idCat = $idCat
ORDER BY R.nomRecettes ";
$rs = mysql_query($sql) or die ("Erreur de requête:$sql" );
$tab = "<table>" ;
$i=1 ;
while($row=mysql_fetch_array($rs)) {
extract($row) ;
$photos = $_FILES["photos"] ;
if (($i % 2 ) == 0) {
$classe = "paire" ;
} else {
$classe = "impaire" ;
}
$tab .= "
<tr class='$classe'>
<th rowspan='2' valign='middle' ><a href='index.php?page=23'><img src='$photos' class='photo /></th>
<th valign='middle>$nomRecettes $nomCat </th>
</tr>
<tr class='$classe'>
<td valign='top'>Temps de préparation: $temps_prepa;> - Temps de cuisson: $temps_cuisson <br />Difficulté: $difficulte </td>
</tr>
";
}
$i++ ;
}
$tab .= "</table>" ;
}
return $tab;
Pour afficher tu fais :
</head>
<body>
<?php
include "include/connexion.inc.php" ;
?>
<article>
<label for="categorie" class="select">Rechercher par catégorie</label>
<?php // Afficher le tableau sur la page
echo listeCat($idCat) ;
echo listeRecettes($idCat) ;
?>
</article>
</body>
</html>
Un truc dans le genre ... Je suis pas sur que la deuxième fonction fonctionne !
Sid05
Messages postés
19
Date d'inscription
mercredi 3 septembre 2014
Statut
Membre
Dernière intervention
6 novembre 2014
4 sept. 2014 à 15:06
4 sept. 2014 à 15:06
Merci pour la réponse.
Oui, je débute et je mélange peut-être un peu.
J'ai essayé mais en effet, il doit y avoir quelque chose qui ne va pas car ça ne marche pas.
Je vais regarder en profondeur ;-)
Oui, je débute et je mélange peut-être un peu.
J'ai essayé mais en effet, il doit y avoir quelque chose qui ne va pas car ça ne marche pas.
Je vais regarder en profondeur ;-)
Sid05
Messages postés
19
Date d'inscription
mercredi 3 septembre 2014
Statut
Membre
Dernière intervention
6 novembre 2014
18 sept. 2014 à 18:00
18 sept. 2014 à 18:00
Voilà, j'ai changé mon code
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: https://www.marmiton.org/recettes/recherche.aspx?type=all&aqt=poulet mais je n'y arrive pas :??:
<?php extract($_GET); if(!isset($idCat)) { $idCat= "29"; } ?> <label for="categorie" class="select">Rechercher par catégorie</label> <?php include "include/connexion.inc.php" ; ?> <?php echo'<form method="get" action="" >'; echo'<input type="hidden" name="page" value="06" />'; $reponse = mysql_query("select * from tblcategories order by nomCat" ); echo'<select name="idCat">'; while ($donnees = mysql_fetch_array($reponse) ) { echo '<option value="'.$donnees['idCat'].'">'.$donnees['nomCat'].'</option>'; } echo'</select>'; echo'<input type="submit" value=" ok ">'; echo'</form>'; ?> <br /><br /> <?php $sql = "SELECT R.*, P.* FROM tblrecettes R INNER JOIN tblcategories P ON R.idCat = P.idCat WHERE P.idCat = $idCat ORDER BY R.nomRecettes "; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); echo "<table>\n"; while ($data = mysql_fetch_array($req)) { // on affiche les résultats echo "<tr>"; echo "<td rowspan="2" padding-lef="1em" padding-right="1em" color="#900" text-align="left">"; echo '<a href="'.$data.'"><img src="./mini/'.$photo.'" border="none" height="auto" width="100px"/><br/></a>'; echo "</td>"; echo "<th padding-lef="1em" padding-right="1em" color="#900" text-align="left">"; echo ''.$data['nomRecettes'].' ('; echo ''.$data['nomCat'].')'.'<br />'; echo "</th>"; echo "</tr>"; echo "<tr>"; echo "<td padding-lef="1em" padding-right="1em" color="#900" text-align="left">"; echo 'Temps de préparation: '.$data['temps_prepa'].' - '; echo 'Temps de cuisson: '.$data['temps_cuisson'].'<br />'; echo 'Difficulté: '.$data['difficulte'].'<br />'; echo "</td>"; echo "</tr>"; } echo "</table>\n"; mysql_free_result ($req); mysql_close (); ?> </body> </html>
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: https://www.marmiton.org/recettes/recherche.aspx?type=all&aqt=poulet mais je n'y arrive pas :??:
Sid05
Messages postés
19
Date d'inscription
mercredi 3 septembre 2014
Statut
Membre
Dernière intervention
6 novembre 2014
18 sept. 2014 à 19:57
18 sept. 2014 à 19:57
Voilà, j'ai changé mon code:
Pour la page recettes.php (avec la liste des recettes):
Et pour la page qui affiche la recette:
Mais voilà ce qui s'affiche:
Erreur SQL !
SELECT R.*, P.* FROM tblrecettes R INNER JOIN tblcategories P ON R.idCat = P.idCat WHERE P.idRecettes="4"
No database selected
Pour la page recettes.php (avec la liste des recettes):
<?php extract($_GET); if(!isset($idCat)) { $idCat= "29"; } ?> <label for="categorie" class="select">Rechercher par catégorie</label> <?php echo'<form method="get" action="" >'; echo'<input type="hidden" name="page" value="06" />'; $reponse = mysql_query("select * from tblcategories order by nomCat" ); echo'<select name="idCat">'; while ($donnees = mysql_fetch_array($reponse) ) { echo '<option value="'.$donnees['idCat'].'">'.$donnees['nomCat'].'</option>'; } echo'</select>'; echo'<input type="submit" value=" ok ">'; echo'</form>'; ?> <?php include "include/connexion.inc.php" ; ?> <br /><br /> <?php $sql = "SELECT R.*, P.* FROM tblrecettes R INNER JOIN tblcategories P ON R.idCat = P.idCat WHERE P.idCat = $idCat ORDER BY R.nomRecettes "; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); echo "<table>\n"; while ($data = mysql_fetch_array($req)) { // on affiche les résultats echo "<tr>"; echo "<td rowspan="2" padding-lef="1em" padding-right="1em" color="#900" text-align="left">"; echo '<a href="inc/recettes_affichage.php?id_recette_a_lire=' , $data['idRecettes'] , '"><img src="./mini/'.$photo.'" border="none" height="auto" width="100px"/><br/></a>'; echo "</td>"; echo "<th padding-lef="1em" padding-right="1em" color="#900" text-align="left">"; echo ''.$data['nomRecettes'].' ('; echo ''.$data['nomCat'].')'.'<br />'; echo "</th>"; echo "</tr>"; echo "<tr>"; echo "<td padding-lef="1em" padding-right="1em" color="#900" text-align="left">"; echo 'Temps de préparation: '.$data['temps_prepa'].' - '; echo 'Temps de cuisson: '.$data['temps_cuisson'].'<br />'; echo 'Difficulté: '.$data['difficulte'].'<br />'; echo "</td>"; echo "</tr>"; } echo "</table>\n"; mysql_free_result ($req); mysql_close (); ?> </body> </html>
Et pour la page qui affiche la recette:
<?php include "include/connexion.inc.php" ; ?> <?php if (!isset($_GET['id_recette_a_lire'])) { echo 'Sujet non défini.'; } else { echo'<form method="get" action="" >'; echo'<input type="hidden" name="page" value="23" />'; $sql = 'SELECT R.*, P.* FROM tblrecettes R INNER JOIN tblcategories P ON R.idCat = P.idCat WHERE P.idRecettes="'.$_GET['id_recette_a_lire'].'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while ($data = mysql_fetch_array($req)) { echo "<tr>"; echo "<td> "; echo ''.$data['nomCat'].')'.'<br />'; echo "</td>"; echo "</tr>"; } ?> <table>
Mais voilà ce qui s'affiche:
Erreur SQL !
SELECT R.*, P.* FROM tblrecettes R INNER JOIN tblcategories P ON R.idCat = P.idCat WHERE P.idRecettes="4"
No database selected