PHP liste deroulante et requete sql select
Résolu
sonar974
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
sonar974 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
sonar974 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
etant debutant en PHP/MYSQL,
je suis actuellement entrin de codé un ecommerce,
le design html est en place !!!
la partie du code php que j'ai mis en place fonctionne bien mais pour aller plus loin,
j'ai une list deroulante pour le trie et je souhaiterais utiliser cette liste deroulante pour filtrer ma requete voici mon code :
<div class="content-center">
<div id="products-list">
<header>
<p class="counter"><strong>01-08</strong> sur 40 créations</p>
<select name="trie">
<option>Date</option>
<option>Prix croissant</option>
<option>Prix décroissant</option>
<option>Nom de A-Z</option>
<option>Nom de Z-A</option>
</select>
</header>
<div class="products">
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=catatest', 'root', '', $pdo_options);
// On récupère tout le contenu de la table
$reponse = $bdd->query('SELECT * FROM produits LIMIT 0, 12');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<article>
<figure><a href="produit.php?ID=<?php echo $donnees['ID']; ?>" title="Informations produits"><img src="<?php echo $donnees['photo']; ?>" alt="" /></figure>
<figcaption>
<h2>
<span class="title"><?php echo $donnees['prix']; ?>€</span>
<span class="marque"><?php echo $donnees['marques']; ?> <?php echo $donnees['ref']; ?></span>
<br />
</h2>
<br />
</figcaption>
</article>
</em>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
si vous m'avais compris ce qui me pose probleme c'est sa :
<select name="trie">
<option>Date</option>
<option>Prix croissant</option>
<option>Prix décroissant</option>
<option>Nom de A-Z</option>
<option>Nom de Z-A</option>
</select>
utiliser un choix pour l'injecter dans ma requete ici :
$reponse = $bdd->query('SELECT * FROM produits LIMIT 0, 12');
merci d'avance
etant debutant en PHP/MYSQL,
je suis actuellement entrin de codé un ecommerce,
le design html est en place !!!
la partie du code php que j'ai mis en place fonctionne bien mais pour aller plus loin,
j'ai une list deroulante pour le trie et je souhaiterais utiliser cette liste deroulante pour filtrer ma requete voici mon code :
<div class="content-center">
<div id="products-list">
<header>
<p class="counter"><strong>01-08</strong> sur 40 créations</p>
<select name="trie">
<option>Date</option>
<option>Prix croissant</option>
<option>Prix décroissant</option>
<option>Nom de A-Z</option>
<option>Nom de Z-A</option>
</select>
</header>
<div class="products">
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=catatest', 'root', '', $pdo_options);
// On récupère tout le contenu de la table
$reponse = $bdd->query('SELECT * FROM produits LIMIT 0, 12');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<article>
<figure><a href="produit.php?ID=<?php echo $donnees['ID']; ?>" title="Informations produits"><img src="<?php echo $donnees['photo']; ?>" alt="" /></figure>
<figcaption>
<h2>
<span class="title"><?php echo $donnees['prix']; ?>€</span>
<span class="marque"><?php echo $donnees['marques']; ?> <?php echo $donnees['ref']; ?></span>
<br />
</h2>
<br />
</figcaption>
</article>
</em>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
si vous m'avais compris ce qui me pose probleme c'est sa :
<select name="trie">
<option>Date</option>
<option>Prix croissant</option>
<option>Prix décroissant</option>
<option>Nom de A-Z</option>
<option>Nom de Z-A</option>
</select>
utiliser un choix pour l'injecter dans ma requete ici :
$reponse = $bdd->query('SELECT * FROM produits LIMIT 0, 12');
merci d'avance
A voir également:
- Liste déroulante php mysql
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Supprimer liste déroulante excel ✓ - Forum Excel
- Liste déroulante google sheet - Accueil - Guide bureautique
- Supprimer liste déroulante Excel ✓ - Forum Excel
6 réponses
si sa peu aider quelqu'un
<!-- CONTENT -->
<div class="content-center">
<div id="products-list">
<header>
<p class="counter"><strong>01-08</strong> sur 40 créations</p>
<!--- <select name="trie">
<option>Date</option>
<option>Prix croissant</option>
<option>Prix décroissant</option>
<option>Nom de A-Z</option>
<option>Nom de Z-A</option>
</select> --->
<form method="GET" action=""><select name="trie" action="">
<option value="dateAsc">Date croissante</option>
<option value="dateDesc">Date décroissante</option>
<option value="prixAsc">Prix croissant</option>
<option value="prixDesc">Prix décroissant</option>
<option value="nomAsc">Nom A-Z</option>
<option value="nomDesc">Nom Z-A</option>
</select>
</form>
</header>
<div class="products">
<?php
if(isset($_GET['trie'])) {
switch($_GET['trie']) {
case 'dateAsc':
$tri = 'date ASC';
break;
case 'dateDesc':
$tri = 'date DESC';
break;
case 'prixAsc':
$tri = 'prix ASC';
break;
case 'prixDesc':
$tri = 'prix DESC';
break;
default:
$tri = 'prix ASC';
break;
}
} else {
$tri = 'prix ASC';
}
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=catatest', 'root', '', $pdo_options);
// On récupère tout le contenu de la table
$reponse = $bdd->query('SELECT * FROM produits ORDER BY ".$tri." ASC LIMIT 0, 12');
//$reponse = $bdd->query('SELECT * FROM produits LIMIT 0, 12');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<article>
<figure><a href="produit.php?ID=<?php echo $donnees['ID']; ?>" title="Informations produits"><img src="<?php echo $donnees['photo']; ?>" alt="" /></figure>
<figcaption>
<h2>
<span class="title"><?php echo $donnees['prix']; ?>€</span>
<span class="marque"><?php echo $donnees['marques']; ?> <?php echo $donnees['ref']; ?></span>
<br />
</h2>
<br />
</figcaption>
</article>
</em>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
cette methode n'affiche aucune erreur,
cepandant je pense qui faudrais un bouton pour activer le filtrage
<!-- CONTENT -->
<div class="content-center">
<div id="products-list">
<header>
<p class="counter"><strong>01-08</strong> sur 40 créations</p>
<!--- <select name="trie">
<option>Date</option>
<option>Prix croissant</option>
<option>Prix décroissant</option>
<option>Nom de A-Z</option>
<option>Nom de Z-A</option>
</select> --->
<form method="GET" action=""><select name="trie" action="">
<option value="dateAsc">Date croissante</option>
<option value="dateDesc">Date décroissante</option>
<option value="prixAsc">Prix croissant</option>
<option value="prixDesc">Prix décroissant</option>
<option value="nomAsc">Nom A-Z</option>
<option value="nomDesc">Nom Z-A</option>
</select>
</form>
</header>
<div class="products">
<?php
if(isset($_GET['trie'])) {
switch($_GET['trie']) {
case 'dateAsc':
$tri = 'date ASC';
break;
case 'dateDesc':
$tri = 'date DESC';
break;
case 'prixAsc':
$tri = 'prix ASC';
break;
case 'prixDesc':
$tri = 'prix DESC';
break;
default:
$tri = 'prix ASC';
break;
}
} else {
$tri = 'prix ASC';
}
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=catatest', 'root', '', $pdo_options);
// On récupère tout le contenu de la table
$reponse = $bdd->query('SELECT * FROM produits ORDER BY ".$tri." ASC LIMIT 0, 12');
//$reponse = $bdd->query('SELECT * FROM produits LIMIT 0, 12');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<article>
<figure><a href="produit.php?ID=<?php echo $donnees['ID']; ?>" title="Informations produits"><img src="<?php echo $donnees['photo']; ?>" alt="" /></figure>
<figcaption>
<h2>
<span class="title"><?php echo $donnees['prix']; ?>€</span>
<span class="marque"><?php echo $donnees['marques']; ?> <?php echo $donnees['ref']; ?></span>
<br />
</h2>
<br />
</figcaption>
</article>
</em>
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>
cette methode n'affiche aucune erreur,
cepandant je pense qui faudrais un bouton pour activer le filtrage