par
Duck806 » 27 juil. 2013, 18:06
Bonjour,
J'ai un problème avec mon code qui a pour but de trié via la clause WHERE mon tableau grâce a des critères soit différent soit successif.
En somme, mes requêtes fonctionne bien, mais à terme si je souhaite rajouter 3 ou 4 critères de plus cela deviendrais très vite un code avec des centaines de lignes.
Je souhaiterai trouver une solutions pour avoir un code plus logique qui me permettrai de trier avec ma clause WHERE un ou plusieurs critères soit différent soit successif sans passer par des requêtes avec des centaines de lignes..
Cette requête signifie que mon tableau comporte tous mes membres
if (isset($_GET['page']) AND !empty($_GET['page']))
{
$requete_classement = $bdd->prepare("SELECT f.id f_id,
f.username f_username,
c.id_designer c_id_designer,
f.moyenne f_moyenne
FROM forum_users f
LEFT JOIN user_detail c
ON f.id = c.id_designer
ORDER BY f.moyenne DESC
LIMIT :nombre_un, :nombre_deux");
$requete_classement->bindValue('nombre_un', ($_GET['page'] - 1) * $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->bindValue('nombre_deux', $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->execute();
}
Cette requete signifie que mon tableau comporte tous mes membres selon le type
if (isset($_GET['page']) AND !empty($_GET['page']) OR isset($_GET['type']) AND !empty($_GET['type']))
{
$requete_classement = $bdd->prepare("SELECT f.id f_id,
f.username f_username,
c.id_designer c_id_designer,
f.moyenne f_moyenne,
c.cat_".$_GET['type']." c_cat_".$_GET['type']."
FROM forum_users f
LEFT JOIN user_detail c
ON f.id = c.id_designer
WHERE c.cat_".$_GET['type']." > '0'
ORDER BY f.moyenne DESC
LIMIT :nombre_un, :nombre_deux");
$requete_classement->bindValue('nombre_un', ($_GET['page'] - 1) * $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->bindValue('nombre_deux', $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->execute();
}
while($classement = $requete_classement->fetch())
{
...
}
$requete_classement->closeCursor();
Voila j'ai vraiment essayer d'expliquer clairement la situation, je ne suis pas très doué dans ce domaine, si vous avez une explications pouvez vous simplifier au maximum
Cordialement.
Bonjour,
J'ai un problème avec mon code qui a pour but de trié via la clause WHERE mon tableau grâce a des critères soit différent soit successif.
En somme, mes requêtes fonctionne bien, mais à terme si je souhaite rajouter 3 ou 4 critères de plus cela deviendrais très vite un code avec des centaines de lignes.
Je souhaiterai trouver une solutions pour avoir un code plus logique qui me permettrai de trier avec ma clause WHERE un ou plusieurs critères soit différent soit successif sans passer par des requêtes avec des centaines de lignes..
[i]Cette requête signifie que mon tableau comporte tous mes membres[/i]
[php]if (isset($_GET['page']) AND !empty($_GET['page']))
{
$requete_classement = $bdd->prepare("SELECT f.id f_id,
f.username f_username,
c.id_designer c_id_designer,
f.moyenne f_moyenne
FROM forum_users f
LEFT JOIN user_detail c
ON f.id = c.id_designer
ORDER BY f.moyenne DESC
LIMIT :nombre_un, :nombre_deux");
$requete_classement->bindValue('nombre_un', ($_GET['page'] - 1) * $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->bindValue('nombre_deux', $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->execute();
}[/php]
[i]Cette requete signifie que mon tableau comporte tous mes membres selon le type[/i]
[php]
if (isset($_GET['page']) AND !empty($_GET['page']) OR isset($_GET['type']) AND !empty($_GET['type']))
{
$requete_classement = $bdd->prepare("SELECT f.id f_id,
f.username f_username,
c.id_designer c_id_designer,
f.moyenne f_moyenne,
c.cat_".$_GET['type']." c_cat_".$_GET['type']."
FROM forum_users f
LEFT JOIN user_detail c
ON f.id = c.id_designer
WHERE c.cat_".$_GET['type']." > '0'
ORDER BY f.moyenne DESC
LIMIT :nombre_un, :nombre_deux");
$requete_classement->bindValue('nombre_un', ($_GET['page'] - 1) * $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->bindValue('nombre_deux', $NombreDeMembresParPage, PDO::PARAM_INT);
$requete_classement->execute();
}
while($classement = $requete_classement->fetch())
{
...
}
$requete_classement->closeCursor();
[/php]
Voila j'ai vraiment essayer d'expliquer clairement la situation, je ne suis pas très doué dans ce domaine, si vous avez une explications pouvez vous simplifier au maximum :lol:
Cordialement.