Ceci est pour un script de tri. Je veux commander mes messages par votes. J'utilise une instruction if dans une fonction pour vérifier quel ordre a été sélectionné et afficher les messages en fonction de cela.variables passage dans la fonction
La fonction suivante insère des données dans ma requête.
function vote_orderby($orderby)
{
global $vote_sort;
if($vote_sort == "most_voted") {
// order by most votes
return "votes DESC"; //inserts into query
}
// return default order by if no votes
return $orderby;
}
HTML
$vote_sort = "most_voted"; //should be picked up by function
..function
..loop
Je veux générer,
$query = "SELECT * FROM posts ORDER BY votes DESC";
Mais les messages sont classés par date. Cela fonctionne cependant sans l'instruction if, cela garantit que je n'ai pas d'erreurs MYSQL.
Comment est-il possible de passer la valeur $vote_sort
dans la fonction?
Note: Je suis conscient du risque d'injection SQL, je vais filtrer tout bientôt.
merci pour le code ça a l'air bien! Toutefois, pour une raison quelconque, il utilise toujours le commutateur par défaut. Je ne pense pas que cela ramasse la variable '$ sortby'. J'ai même essayé '$ sortby =" least_voted "' et il utilise toujours la valeur par défaut. Quelque chose semble éteint. – Noob
Avez-vous essayé d'écho les résultats de la variable $ order pour voir ce que la fonction retourne réellement? De cette façon, vous pouvez savoir si le commutateur est correct avec la fonction et la base de données peut être désactivée. Essayez de faire cela et laissez-moi savoir les résultats :) –