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 compte gmail - Guide
- Lien copie - Forum Android
- Créer une adresse mail - Guide
- Créer un compte google - Guide
- Créer un compte instagram - 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