ekipage2
Messages postés18Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention12 décembre 2004
-
5 déc. 2004 à 09:23
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
5 déc. 2004 à 16:40
Bonjour,
Je mets en place un script de gestion de jeux, joueurs avec sauvegarde des scores.
J'ai une base de donnée : joueur et une autre : score
Le script qui me pose probleme est le suivant
//lecture infos joueur et score
$ligne0 = "SELECT * FROM joueur WHERE idjoueur='$idjoueur'";
$result0=mysql_db_query($db, $ligne0);
$row0 = mysql_fetch_row($result0);
$pseudo = $row0[1];
//affichage du pseudo du joueur
print "Bienvenue : $pseudo <h3>"; //
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 5 déc. 2004 à 13:08
"je suis surpris d'ailleurs parce que tu me dis, vu que row (tout seul), recupère les champ 2 fois: + de tps pour récupérer et 1 tableau + lourd..."
Arf...
mysql_fetch_row ne récupère en rien les champs deux fois, les champs étant désignés par un indice numérique $ligne[0] au lieu de $ligne['mon_champ'] ce qui est plus rapide à traiter (les nombres sont plus rapides à traiter que les chaînes de caractères)
cs_windu
Messages postés282Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention19 juillet 2006 5 déc. 2004 à 10:13
pkoi ton champ score est il en char?? ne vaudrait-il pas mieux le mettre en int?
sinon privilégie mysql_fetch_assoc pluto ke mysql_fetch_row: aisni tu devra nommer tes champ par un nom et non par un chiffre ce qui te permettra deja d'etre sur que tu appelle le bon champ!
ex: au lieu de:
$score = $row1[3];
tu devras faire:
$score = $row1['score'];
ce ki rend + lisible le code et evite certaines erreur!!
sinon as tu essayé de faire mysql_erro()? c'est très utile pour voir ou ca coince: execute la de cette facon par ex.:
if(!$result1=mysql_db_query($db, $ligne1))
{
echo mysql_error();
}
else
{
... //la suite de ton code
cs_windu
Messages postés282Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention19 juillet 2006 5 déc. 2004 à 10:29
ben techniquement mysql_fetch_assoc equivaut a mysql_fetch_row($requete,MYSQL_ASSOC), donc mon conseil est valable dasn les 2 cas... je disais ca surtou pour la lisibilité du code!
je suis surpris d'ailleurs parce que tu me dis, vu que row (tout seul), recupère les champ 2 fois: + de tps pour récupérer et 1 tableau + lourd...
Que la Force soit avec toi, Jeune Padawan!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_windu
Messages postés282Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention19 juillet 2006 5 déc. 2004 à 13:08
cela signifie que ta requete est vide.... donc affiche ta requete avec echo et verifie aussi que la variable se nomme bien exactement de la meme facon lorsque tu ecris al requete SQL et lorsque tu appelle mysql_db_query (fais gaffe aux majuscules/minuscules...)
cs_windu
Messages postés282Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention19 juillet 2006 5 déc. 2004 à 14:29
d'accord sur le fait qu'un nombre soit + rapide a traiter qu'une chaine...
mais le fait est que fetch_row renvoie a la fois l'un ET l'autre (sauf si on utilise MYSQL_ASSOc ou MYSQL_NUM qui ne renvoie alors qu'un seul des 2), donc la chaine est tout de meme traitée et en + il faut traiter pour un nombre!! j'ai donc du makl a voir ou est le gain de temps...
cs_windu
Messages postés282Date d'inscriptionvendredi 16 mai 2003StatutMembreDernière intervention19 juillet 2006 5 déc. 2004 à 16:22
Oupssssss. :blush)
complètement désolé!!! j'ai confondu mysql_fetch_row et mysql_fetch_array (qui lui renvoie bien 2 fois les champ: 1 fois indexé numériquement et 1 fois avec les noms des champs!!!)
Je m'en vais plein de honte!!! :blush)
P.S.: ca a bien pourri ce forum ma con*****....