Besoin d'une petite aide pour un novice.
Résolu
Roocket
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Roocket Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Roocket Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Hey !
Alors voilà, avant toute chose, je ne connais absolument rien au langage php. J'essaie juste de modifier 2/3 trucs simples dans un code déjà fait.
Bon alors voilà le problème, sur mon site, il y a un tableau style groupe avec des équipes, leur nombre de points etc... Si bien que afin de trier qui est la meilleure équipe, le site se base sur celui qui a le plus grand nombre de point. Jusque là normal. Sur la ligne de code que je vous met ici, j'ai bien compris que c'était le "['points', 'DESC']" qui déterminait ca. Sauf que, j'aimerais le trier selon deux critères : d'abord les points comme c'est déjà le cas, et ensuite selon le ROUND/DIFF. Si je remplace le 'points' par 'rd' (<- c'est pas ca mais c'est pour l'exemple), le site va effectivement trier par rd mais du coup pas par points (logique, c'était juste pour voir si ca fonctionnait). Ma question : comment faire pour qu'il prenne en compte d'abord les points et ensuite les rd.
J'ai pas mal chercher sur internet mais j'ai rien trouver du style et je suis vraiment perdu n'y connaissant rien à la base. C'est peut-etre simple au final. haha
Merci d'avance.
$sponsors = pixieclash_select_all($tables['standings'], ['group_id', $id], ['points', 'DESC']);
return $sponsors;
Alors voilà, avant toute chose, je ne connais absolument rien au langage php. J'essaie juste de modifier 2/3 trucs simples dans un code déjà fait.
Bon alors voilà le problème, sur mon site, il y a un tableau style groupe avec des équipes, leur nombre de points etc... Si bien que afin de trier qui est la meilleure équipe, le site se base sur celui qui a le plus grand nombre de point. Jusque là normal. Sur la ligne de code que je vous met ici, j'ai bien compris que c'était le "['points', 'DESC']" qui déterminait ca. Sauf que, j'aimerais le trier selon deux critères : d'abord les points comme c'est déjà le cas, et ensuite selon le ROUND/DIFF. Si je remplace le 'points' par 'rd' (<- c'est pas ca mais c'est pour l'exemple), le site va effectivement trier par rd mais du coup pas par points (logique, c'était juste pour voir si ca fonctionnait). Ma question : comment faire pour qu'il prenne en compte d'abord les points et ensuite les rd.
J'ai pas mal chercher sur internet mais j'ai rien trouver du style et je suis vraiment perdu n'y connaissant rien à la base. C'est peut-etre simple au final. haha
Merci d'avance.
A voir également:
- Besoin d'une petite aide pour un novice.
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Petite croix snap ✓ - Forum Snapchat
- La fenetre actuelle est trop petite pour afficher correctement cette feuille - Forum Google Docs
- Petite majuscule word ✓ - Forum Word
- Mettre en petites majuscules - Forum Bureautique
2 réponses
Bonjour,
Tu ne trouveras rien...... car la ligne de code que tu nous montres est un appel à une fonction créée par le développeur....
Donc pour modifier ce que tu souhaites... il faut trouver (et nous montrer) le contenu de la fonction pixieclash_select_all()
Tu ne trouveras rien...... car la ligne de code que tu nous montres est un appel à une fonction créée par le développeur....
Donc pour modifier ce que tu souhaites... il faut trouver (et nous montrer) le contenu de la fonction pixieclash_select_all()
function pixieclash_select_all($table, $where = null, $order = null) {
global $wpdb;
$table = $wpdb->prefix . $table;
$q = "SELECT * FROM `{$table}`";
// Select where
if(!empty($where)) {
$q .= " WHERE `" . esc_sql($where[0]) . "`='" . esc_sql($where[1]) . "'";
}
if(!empty($order)) {
$q .= " ORDER BY `" . esc_sql($order[0]) . "` " . esc_sql($order[1]);
}
// Check if plugin exists
if(!function_exists('run_pixieclashpanel')) {
return false;
}
$result = $wpdb->get_results($q, ARRAY_A);
return $result;
}
Est ce ceci ?
Oui.
On peut y voir que la requête est construite en fonction des paramètres qui sont passés dans ta fonction.
Par exemple, pour le ORDER tu as ça :
Si toi tu veux pouvoir y ajouter d'autres champs .. il faut modifier le code, par exemple :
Et pour apeller ta fonction tu pourras faire :
On peut y voir que la requête est construite en fonction des paramètres qui sont passés dans ta fonction.
Par exemple, pour le ORDER tu as ça :
if(!empty($order)) { $q .= " ORDER BY `" . esc_sql($order[0]) . "` " . esc_sql($order[1]); }
Si toi tu veux pouvoir y ajouter d'autres champs .. il faut modifier le code, par exemple :
if(!empty($order)) { $q .= " ORDER BY `" . esc_sql($order[0]) . "` " . esc_sql($order[1]); if(!empty($order[2])){ $q .= " , `" . esc_sql($order[2]) . "` " . esc_sql($order[3]); } }
Et pour apeller ta fonction tu pourras faire :
$sponsors = pixieclash_select_all($tables['standings'], ['group_id', $id], ['points', 'DESC','ROUND(points)','DESC']);