|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
30 éléves presque simultanément valident chacun un formulaire
Code :
Tout cela fonctionne bien, mais certains dans certains cas auraient rencontré une note affectée à un autre élève. Question de débutant : La simultanéité peut-elle créer des effets de bord (je ne sais pas si vraiment c'est le terme) c'est à dire une mauvaise association entre la note et nom de l'élève ? |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Si tu gère bien ton truc non.
Il faudrait voir un peu plus de ton code pour te dire... |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
Essayons d'imaginer... le formulaire est envoyé.
Sur le serveur est exécuté traitement.php $note = 20 Je fais la connexion à la base de donnée pour enregistrement... Ah !!! le serveur est encombré - connexion difficile - Entre temps le serveur recoit un autre formulaire $note = 15 Ca y est la conexion est ouverte... $note est enregistré dans la bas MySql... 15 ou 20 ? |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : janvier 2004 Messages : 9 ![]() |
fais nous voir un pe de code qui correspond a ton problème
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : février 2004 Messages : 347 ![]() |
logiquement le SGBD gère les problèmes de simultanéité, sinon quel serait l'interêt des SGBD
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
faudrait peut-être voir si ta version de sgbd supporte les transactions...
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Les insert ou update sont théoriquement atomiques.
Il nous faut absolument ton code pour savoir si il y a un risque ou pas. |
|
|
00
|
|
|
#8 | ||||||||||
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
Un script de formulaire ...extrait
On expedie la variable Score sur le serveur et on attaque traitement.php Code :
Traitement.php maintenant Connexion et recup varible session Code :
Code :
Code :
Code :
|
||||||||||
|
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
En depouillant mon code pour le présenter, j'ai remarqué au debut de mon traitement php cette redondance
Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
hmm a priori pas grand chose puisque tu utilises require_once mais bon moi je m'inquiéterais plutot du session_start entre les deux...
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
00
|
|
|
#11 | |
![]() ![]() Geek entrepreneur Inscription : novembre 2004 Messages : 1 035 ![]() |
A priori aucun puisque ce sont des require_once
Quand au session_start, cf la doc : Citation:
|
|
|
00
|
|
|
#12 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
|
|
|
|
00
|
|
|
#13 |
![]() ![]() Geek entrepreneur Inscription : novembre 2004 Messages : 1 035 ![]() |
SELECT * FROM stock_activite WHERE eleve_ID = %s AND quiz_ID=%s
Ne faudrait-il pas écrire : SELECT * FROM stock_activite WHERE eleve_ID = '%s' AND quiz_ID='%s' ? |
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : janvier 2004 Messages : 228 ![]() |
Si un enregistrement existe pour cet eleve et ce quiz, je modifie sa note sinon je crée un nouvel enregistrement
Pouvez vous m'en dire plus sur cette erreur de quote... Cela pourrait-il avoir une incidence sur le choix d'un élève qui ne serait pas le bon et affectation de la note à ce dernier... ? |
|
|
00
|
|
|
#15 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Il faut en effet te tourner vers les transactions.
Mise à part ça, il y a l'instruction UPDATE pour pouvoir modifier une donnée dans ta table. Ce n'est pas la peine de supprimer puis de réinsérer pour faire une modification... EDIT : laisse tomber ce commentaire |
|
|
00
|
|
|
#16 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Tiens ca pourra t'aider !
http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com