Hello je sèche avec le tuto de Nico sur les score en ligne. Pour éviter les doublons, je souhaiterai updater le score si le nom existe déjà dans la base de donnée. Quelqu'un voit quel script ajouter au post.php ?
// Connexion à la base de données $bd = mysql_connect($adresse, $nom, $motpasse); mysql_select_db($basedonnee, $bd);
// Récupération des variables provenant de MMF $nom = stripslashes($_POST['nom']); $score = stripslashes($_POST['score']);
// Condition de vérification des variables "score" et "nom" pour pouvoir exécuter la commande SQL d'insertion if (isset($_POST['nom']) && isset($_POST['score'])) {
// Si le pseudo existe déjà, insérer le nouveau score correspondant au nom existant ICI <-------------
// Si non, enregistrement du nom et score dans la table "score" de la base de données. mysql_query("INSERT INTO score VALUES('', '" . $nom . "', '" . $score . "')"); }
// Déconnexion de la base de données mysql_close(); ?>
Modifié le mercredi 10 juin 2015 à 18:48
par Patrice
Et si en début de fichier j’efface la ligne de la table correspondant au nom avant de la réécrire ? Je suis désolé je suis une burne en syntaxe php si vous pouviez m'écrire la ligne avec la bonne syntaxe ce serai super sympa... je sais j'abuse pour une fois... ;)
mysql_query("DELETE FROM score WHERE nom='$nom'");
Le script post.php efface la ligne concernée avant de la réécrire avec la bonne valeur Pour info, sachez que Nico est une génie :) Merci Cybercli pour ton aide. :)
lalexl
vendredi 12 juin 2015 à 00:16
salut Patrice, hum le tuto de Nico est un peu vieux il me semble le php a évolué aujourd’hui, il vaut mieux se protéger en utilisant des requêtes préparées pour éviter les injections sql.
// Récupération des variables provenant de MMF $nom = $_GET['nom']; $score = $_GET['score'];
$req = $bdd ->prepare('SELECT id FROM score WHERE nom = :nom'); $req->execute(array( 'nom' => $nom )); $resultat = $req->fetch();
//si un utilisateur n' existe pas on insert if (!$resultat ) { $req = $bdd->prepare('INSERT INTO score (nom, score) VALUES(:nom, :score)'); $req->execute(array( 'nom' => $nom, 'score' => $score ));
echo 'nouveau score enregistrer'; } //si un utilisateur existe on update else { $req = $bdd->prepare('UPDATE score SET score = :score WHERE nom = :nom '); $req->execute(array( 'nom' => $nom, 'score' => $score ));
echo 'update du score enregistrer'; }
// Déconnexion de la base de données mysql_close(); ?>
je n est pas test sur mmf juste test de valeurs passées par url d ou le get : ex : http://monsite.com/test_scrore.php?nom=gerard&score=10 donc a tester de mettre les variables en :