Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2011, 20h18   #1
Invité de passage
 
Inscription : octobre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 6
Points : 0
Points : 0
Par défaut Effacement de données - code qui ne fonctionne pas

Bonjour !

Je voudrais permettre l'enregistrement dans une base de données mysql d'un pseudo et d'un score.
Concernant ce score, je souhaite :
- qu'il ne soit enregistré que s'il est supérieur aux scores précédents.
- que tous les scores déjà enregistrés soient supprimés de la base de donnée s'ils sont inférieurs au nouveau score.

J'ai écrit ceci :

Code :
1
2
3
4
$insertScore = "INSERT INTO $table values('$newPlayer','$newScore')";
mysql_query($insertScore);
$deleteScores = "DELETE FROM $table WHERE player = $newPlayer AND score < $highestUserScore ";
mysql_query($deleteScores);
Les nouveaux scores sont bien enregistrés s'ils sont supérieurs aux anciens scores. Mais les anciens scores ne sont pas supprimés...

La requête pour effacer les données est-elle correctement écrite ?

Merci pour votre aide.
SecondSight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 22h18   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
ce n'est pas $newScore le nouveau score le plus haut ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 00h08   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Je parie que tu as une erreur.
Pourquoi tu ne vérifie pas le retour de tes mysql_query ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 01h18   #4
Membre actif
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 198
Points : 198
Citation:
WHERE player = $newPlayer
Il ne faut pas sélectionner de joueur si tu comptes effacer tous les scores inférieurs.

Edit: Heeuuu, sauf si plusieurs score gardé pour un meme joueur, donc affiche la requete sql voir si elle est bonne.
nextdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 22h06   #5
Membre actif
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 198
Points : 198
Et si $newPlayer est une chaine :
Code :
...WHERE player = '$newPlayer' AND...
nextdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 05h02   #6
Invité de passage
 
Inscription : octobre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 6
Points : 0
Points : 0
Bonjour '

Je m'en suis sorti finalement en supprimant d'abord tous les scores de l'utilisateur, avant de publier le nouveau et en mettant des apostrophes autour de $newPlayer .

Citation:
$deleteScores = "DELETE FROM $table WHERE player = '$newPlayer'";
mysql_query($deleteScores);
$insertScore = "INSERT INTO $table values('$newPlayer','$newScore')";
mysql_query($insertScore);
Merci !
SecondSight est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h31.


 
 
 
 
Partenaires

Hébergement Web