Nous sommes actuellement le 11 Juil 2026, 21:17

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 
Auteur Message
MessagePublié: 30 Sep 2005, 12:59 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 15 Jan 2004, 23:36
Message(s) : 133
Localisation : Rouyn-Noranda
Bonjour,

je suis présentement en train d'essayer de construire un quiz en php avec une bd SQL.

Ce dernier fonctionne relativement bien jusqu'à présent... le user se connecte à une session, un cookie le suit durant sa session afin de l'identifier. Il doit ensuite répondre au quiz et envoyer le formulaire. Ses réponses se rendrent à l'intérieur d'une bd que j'ai créé à cette effet avec son nom de user puisé dans le cookie. Jusque là, pas de problème. C'est après que les choses se corsent.

Maintenant que j'ai les réponses du user dans ma bd, je veux les comparer avec celles de mon admin qui lui, possède les bonnes réponses afin d'afficher 1 point par bonne réponses à mon user. Les points doivent s'ajouter dans ma bd dans un champs resultats et s'afficher à l'écran en cliquant sur un lien avec un echo ce qui fonctionne...

Par contre, présentement, peu importe ce que le user répond, il obtient toujours 5 points sur une possibilité de 5 (1 pt par bonne réponse et 5 questions). C'est comme si mon code ne faisait que tenir compte de ma boucle (while) et qu'il ne comparait pas vraiment les réponses de mes users avec mon utilisateur administrateur.

Je cherche depuis des heures afin de repérer mes erreurs mais en vain... je vous laisse mon code ici... si une âme charitable voit le bobo, ce serait gentil de m'en faire part svp...

Merci!

Code :
<?php
include("cookieverify.php");
$compteur=0;

// Connection a la base de données.
print "<br><br><br><br><br><br><br>";
$link = mysql_connect("serveur", "user", "pass")
or die ("Could not connect to mysql because ".mysql_error());

// Selection de la base de données.
mysql_select_db("nomdelabd")
or die ("Could not select database because ".mysql_error());

// Sélectionner le nom de l'utilisateur.
$check = "SELECT * FROM table where username = '".$_COOKIE["nomducookie"]."';";
$user = mysql_query($check)
or die ("Could not match data because ".mysql_error());

// Sélectionner le user administrateur car il possède les bonnes réponses.
$check2 = "SELECT * FROM table where username = 'administrateur'";
$admin = mysql_query($check2)
or die ("Could not match data because ".mysql_error());

//Comparer les résultats
$admin_array = mysql_fetch_array($admin, MYSQL_ASSOC);
$user_array = mysql_fetch_array($user, MYSQL_ASSOC);
$i=2;
while ($i<>7) {
if ($admin_array[$i] == $user_array[$i]) {
$compteur = $compteur+1;
}
$i=$i+1;
}
$update = "UPDATE table set resultats = $compteur where username = '".$_COOKIE["nomducookie"]."';";
$user = mysql_query($update);

echo "'".$_COOKIE["nomducookie"]."', vous avez accumul&eacute; $compteur point(s)."
?>

_________________
SaM


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 13:26 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 22:38
Message(s) : 5949
Localisation : Quebec
Petite note, à la place de faire $compteur = $compteur+1; Vous pouvez juste metre $compteur++;

Sinon, vous avez essayé de regarder ce que les deux champs retourne à chaque fois ?

_________________
Herakles Informatique Inc
Collaborateur pour HardGamers


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 14:04 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 15 Jan 2004, 23:36
Message(s) : 133
Localisation : Rouyn-Noranda
Monrake a écrit:
Petite note, à la place de faire $compteur = $compteur+1; Vous pouvez juste metre $compteur++;

En faisant $compteur++; au lieu de $compteur = $compteur+1; le user a 0 point(s) au lieu de 5... Dans le fond, cela ne fait que changer le mal de place.

Et de quel 2 champs parles-tu?

Si tu parles de
$admin_array = mysql_fetch_array($admin, MYSQL_ASSOC);
$user_array = mysql_fetch_array($user, MYSQL_ASSOC);

oui j'ai affiché avec un echo pour voir de ce que cela donnait et cela donne un truc du genre:

Resource id #4'user', vous avez accumulé 5 point(s).

_________________
SaM


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 14:31 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
Code :
$compteur = 0;
for($i=2;$i<7;$i++) {
  if ($admin_array[$i] == $user_array[$i]) {
    echo($admin_array[$i]." <--> ".$user_array[$i];
    $compteur++;
  }
}

ça va donner quoi comme echo ?


Code :
$compteur = 0;
for($i=2;$i<7;$i++) {
  if (strcmp($admin_array[$i],$user_array[$i])==0) {
    echo($admin_array[$i]." <--> ".$user_array[$i];
    $compteur++;
  }
}


Ça change quelque chose ? Étant binaire il est possible que Allo ne soit pas égal à allo. Dans ce cas vous pouvez essayer la fonction suivante: strnatcasecmp

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 14:56 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 15 Jan 2004, 23:36
Message(s) : 133
Localisation : Rouyn-Noranda
Jump a écrit:
Code :
$compteur = 0;
for($i=2;$i<7;$i++) {
  if ($admin_array[$i] == $user_array[$i]) {
    echo($admin_array[$i]." <--> ".$user_array[$i];
    $compteur++;
  }
}

ça va donner quoi comme echo ?



Parse error: parse error, unexpected ';' in ... resultats.php on line 41

La ligne 41 c'est celle de mon echo:

Code :
echo($admin_array[$i]." <--> ".$user_array[$i];

_________________
SaM


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 15:05 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 15 Jan 2004, 23:36
Message(s) : 133
Localisation : Rouyn-Noranda
Oups, il y avait une parenthèse de trop dans le echo.

Maintenant ca semble passer avec ton premier code:

<--> <--> <--> 'user', vous avez accumulé 3 point(s).

Ca concorde pas parfaitement par contre avec le pointage de l'admin. Je serais sensé avoir 4 points...

_________________
SaM


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 16:06 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 15 Jan 2004, 23:36
Message(s) : 133
Localisation : Rouyn-Noranda
Maintenant, ca semble entièrement fonctionnel...

J'avais mal utilisé la fonction mysql_fetch_array. En fait, j'ai seulement changé mysql_fetch_array pour mysql_fetch_row et j'ai enlevé les MYSQL_ASSOC.

Merci de votre aide!

PS: je pensais à ça cela ne doit pas être très compliqué de changer la couleur du texte d'un echo en PHP? Car j'ai des fond noir sur plusieurs pages et les echo ne parraisse pas car ils sont de la même couleur que le fond... Comment on fait pour mettre le texte en blanc par exemple (#FFFFFF) ?

_________________
SaM


Dernière édition par Samuel le 30 Sep 2005, 23:15, édité 2 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 20:50 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
tu peux faire sortir ton echo en html
echo "\n<div style=\"color:black;background-color:yellow\">$contenu</div><br>\n";

Le \n c'est pour mettre un saut de ligne avant et après. Au cas où tu ais a regarder dans le code source...

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 30 Sep 2005, 23:09 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 15 Jan 2004, 23:36
Message(s) : 133
Localisation : Rouyn-Noranda
Merci bien, cela fonctionne très bien! Mosus que je vous aimes... :wink:

_________________
SaM


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site