29-06-2010, 01:39 AM
(Modification du message : 29-06-2010, 01:43 AM par Sephi-Chan.)
J'ai lu en diagonale, mais je vais m'arrêter sur quelques points.
Les deux notations suivantes sont équivalents, je te conseille d'utiliser la seconde, plus claire.
Ensuite, dans le callback de ta requête asynchrone, tu fais évalues les données retournées : il ne faut pas. Les données renvoyées par getJson() sont prêtes à l'emploi.
Enfin, j'ai pensé à un petit refactoring de ta fonction ajax_liste_derniere_distinction_joueur.
J'ai essayé de deviner un peu tes noms de table pour la jointure, peut-être me suis-je planté mais je pense que tu comprendras. ^^
Ces changements dans la fonction font que tu auras un tableau plus brut puisque tes index suivent l'ordre naturel et que le nombre de distinctions est simplement donné par la taille du tableau :
Et dans ton callback, tu peux alors remplacer tableau_data.nb par tableau_data.length !
Voilà, voilà pour mes quelques suggestions d'avant pieutage !
Sephi-Chan
Les deux notations suivantes sont équivalents, je te conseille d'utiliser la seconde, plus claire.
while($line = mysql_fetch_array($result, MYSQL_ASSOC))
while($line = mysql_fetch_assoc($result))
Ensuite, dans le callback de ta requête asynchrone, tu fais évalues les données retournées : il ne faut pas. Les données renvoyées par getJson() sont prêtes à l'emploi.
Enfin, j'ai pensé à un petit refactoring de ta fonction ajax_liste_derniere_distinction_joueur.
function ajax_liste_derniere_distinction_joueur($positionnement = 1){
if($positionnement <= 0 ){
$positionnement = 1;
}
$distinction_joueur = array();
$ord_distinction = ord_distinction();
$i = 0;
$query = sprintf(
"SELECT DJ.id_distinction_joueur,
DJ.id_distinction,
DJ.id_joueur,
J.nom_joueur,
D.nom_distinction
FROM distinction_joueur AS DJ
LEFT JOIN joueurs AS J ON J.id_joueur = DJ.id_joueur
LEFT JOIN distinctions AS D ON D.id_distinction = DJ.id_distinction
ORDER BY id_distinction_joueur DESC
LIMIT %d, 50;",
$positionnement
);
$result = mysql_query($query) or die('Erreur : $distinction_joueur : '. mysql_error());
while($line = mysql_fetch_assoc($result)){
$distinction_joueur[] = $line;
$i++;
}
if($i == 0 && $positionnement > 0){
return ajax_liste_derniere_distinction_joueur($positionnement - 5);
}
return $distinction_joueur;
}
J'ai essayé de deviner un peu tes noms de table pour la jointure, peut-être me suis-je planté mais je pense que tu comprendras. ^^
Ces changements dans la fonction font que tu auras un tableau plus brut puisque tes index suivent l'ordre naturel et que le nombre de distinctions est simplement donné par la taille du tableau :
[
{
"id_distinction_joueur": "2",
"id_distinction": "67",
"id_joueur": "2",
"nom_joueur": "keke_admin",
"nom_distinction": "Nerd"
},
{
"id_distinction_joueur": "1",
"id_distinction": "69",
"id_joueur": "2",
"nom_joueur": "keke_admin",
"nom_distinction": "Mathusalem"
}
]
Et dans ton callback, tu peux alors remplacer tableau_data.nb par tableau_data.length !
Voilà, voilà pour mes quelques suggestions d'avant pieutage !
Sephi-Chan