Tri du client dans une BDD

Pluck Messages postés 42 Statut Membre -  
 Utilisateur anonyme -
Bonjour, je souhaiterais que le visiteru de mons ite puisse trier les articles: afficher soit les Vidéos, soit les Animations, soit les Jeux, soit les Images.

Je voudrais remplire une variable PHP qui s'utiliserais dans un WHERE d'une commande SQL.
Le probleme, c'est comment remplir la variable PHP (disons $type) avec un lien qui ne changerais pas de page ?

Merci

A voir également:

9 réponses

fettahnet Messages postés 73 Statut Membre 1
 
bonjour,

si je comprend ton problème la solution est :

$requette = "SELECT * FROM 'nomtable' WHERE type = 'video' ";

remarque: nomtable = le nom de votre table
type = le champs de trie
0
Pluck Messages postés 42 Statut Membre 7
 
Pas exactement, mon probleme se situerait plus au niveau du type.
je fait des articles de type Video, Images, Anims.. etc.
Mais si le visiteur voudrais voir seulement les videos, il lui suffirait de cliquer sur "Afficher seulement les videos" et la variable $type serais remplie de son choix.

$requette = "SELECT * FROM 'nomtable' WHERE type = '$_GET['type']' ";

Mon seul probleme : Comment la remplir ?
Et, subsidiairement : L'utiliser par un $_POST ou par un $_GET ?

Merci
0
Utilisateur anonyme
 
Quand il clique sur "Afficher seulement" tu recharges la page avec l'option ?type=videos à la suite de l'url, t'auras plus qu'à filtrer les éléments issus de la bdd.
Pour le choix du POST ou GET, je crois que c'est plutot évident dans ton cas, non ?
Pour rappel : http://www.j0k3r.net/php-formulaires-methode-post-ou-get-22.html
0
fettahnet Messages postés 73 Statut Membre 1
 
tu peus créer un lien :

<a href="page.php?type=videos">Afficher seulement les vidéos</a>

et dans la page "page.php":
utiliser where type=$_GET['type']
0
0662905551
 
Tri du client dans une BDD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pluck Messages postés 42 Statut Membre 7
 
Merci beaucoup pour vos réponses, ça fonctionne nickel !
Merci encore.
0
Pluck Messages postés 42 Statut Membre 7
 
Encore une question,
Si j'arrive sur la page, par défaut, il devrais se trouver tous les types d'articles, n'est-ce pas ?

Faut-il utiliser un If ... Else... ?
0
Utilisateur anonyme
 
Faut-il utiliser un If ... Else... ?
Tout à fait.
0
Pluck Messages postés 42 Statut Membre 7
 
D'accord, mais avec quels paramètres ?

J'vois pas trop comment faire à vrai dire..
0
Utilisateur anonyme
 
Ben si $_GET['type'] est vide (chargement sans filtre), tu fais une requete sans WHERE (ie tu affiches toutes les données de ta bdd), sinon tu affiches avec le filtre $_GET['type'].
Note : pour tester si une variable est initialisée en php on utilise isset().
0
Pluck Messages postés 42 Statut Membre 7
 
Ce qui donnerais ça ?
Doit surement y avoir des erreurs, hein ^^

if (isset($_GET['type']) == TRUE)
{
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage; 
$reponse = mysql_query('SELECT * FROM articles WHERE type=\'' .$_GET['type']. '\' ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage);
}
else (isset($_GET['type']) == FALSE)
[
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage; 
$reponse = mysql_query('SELECT * FROM articles ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage);
}
0
Utilisateur anonyme
 
Ouaip le principe est là.
3 remarques :
1.faire un test a==true n'a pas de sens, car on suppose que a est un booléen, donc ==TRUE est superflu
2.pas besoin de faire un deuxième test sur $_GET, puisque on a que deux cas ici, else seul suffit
3.{ à la place d'une [ après le else
code à tester...
0
Pluck Messages postés 42 Statut Membre 7
 
Avec les changements :

if (isset($_GET['type']))
{
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage; 
$reponse = mysql_query('SELECT * FROM articles WHERE type=\'' .$_GET['type']. '\' ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage);
}
else ()
{
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage; 
$reponse = mysql_query('SELECT * FROM articles ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage);
}


Je le testerais une autre fois, pasque j'ai pas encore mon nouveau hebergeur (Payant), j'ai testé tout a l'heure avec mon hebergeur (Gratuit) et ça fonctionnait.
0
Utilisateur anonyme
 
Il reste une petite faute, mais tu la trouveras bien vite quand tu auras testé ;)
0