Une seule valeur ne veut pas s'ajouter à la BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Une seule valeur ne veut pas s'ajouter à la BDD

par Kalyptus » 25 févr. 2008, 00:09

Pardon pardon :oops:
J'avais pas compris ça comme ça. Mais bon maintenant ça marche :/ Mais c'est bizarre quand même. Et puis c'est pas la dernière valeur dans l'ordre alphabétique, ni la première. Mmmh.

par zeus » 24 févr. 2008, 22:29

Excuse moi d'essayer de t'aider :evil:

Si ça ne marche pas, c'est que quelque chose ne se passe pas comme tu le veux. Ma question avait pour but de te faire tester le fonctionnement exact de ton application pour suivre le cheminement exact et trouver l'endroit précis où ça ne marche pas.
Mais bon, je n'avais pas compris qu'il te fallait la solution sur un plateau dorée :x

Sinon, puisque ta question est résolu, j'ajoute le tag [RESOLU]

par Kalyptus » 24 févr. 2008, 21:47

Est-ce que tu as vérifié qu'il passait bien dans le update si une ligne existait dans la table score_pb ?
Mais puisque je dis que les AUTRES valeurs fonctionnent ? Le update marche donc bien !
Bon, j'ai mis un addslashes en entrée et a la sortie un splitslashes, ça marche très bien, même si ça ne m'explique pas le problème.

A ciao et merci

par zeus » 24 févr. 2008, 20:11

Est-ce que tu as vérifié qu'il passait bien dans le update si une ligne existait dans la table score_pb ?

par Kalyptus » 24 févr. 2008, 19:37

...
Je m'attendais à ce type de réponses. Je sais que mon code est loin d'être parfait ou même aux normes, mais ça ne m'explique pas pourquoi CETTE valeur ne fonctionne pas...
Merci quand même pour vos réponses.
J'ai édité le titre, j'avais pas fait attention à le rendre explicite.

A+

par Hubert Roksor » 24 févr. 2008, 17:35

@zeus : puisque l'on parlait de compatibilité ANSI je me suis permis de remplacer tes " (l'équivalent ANSI de `) par des '

par Truc » 24 févr. 2008, 14:02

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de ton problème.
Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

par zeus » 24 févr. 2008, 10:49

Sinon, pourquoi est-ce que tu sélectionnes toutes les lignes de ta table, puis tu les parcours en PHP pour retrouver la ligne concernant le pseudo recherché, alors qu'il serait beaucoup plus simple et optimisé de rechercher directement la ligne qui t'interesse

Code : Tout sélectionner

SELECT * FROM maTable WHERE pseudo='monpseudo'

par Sékiltoyai » 24 févr. 2008, 02:53

Et tu peux les oublier pour faire du code compatible aux standards SQL92…

par h0_noMan » 24 févr. 2008, 01:30

$requete = "UPDATE `scores_pb` SET `score` = '$nouveau' WHERE `pseudo` = '$pseudo'";
Les bon guillemets sont les ' (Touche 4) et pas les ` (ALT+96)

Une seule valeur ne veut pas s'ajouter à la BDD

par Kalyptus » 24 févr. 2008, 01:08

Bonsoir tout le monde,
J'ai un bug très étrange : J'ai une BDD, avec une table qui contient des pseudos, et leur "score" respectif. C'est moi qui crédite a la main les scores, via un formulaire qui transmet a du PHP, qui met a jour la BDD. Si le pseudo s'y trouve deja, le score est credité, sans quoi en plus on crée le pseudo. Bref, ça marche pour tous les pseudos, mais pas pour le pseudo "yohan" (avec ses guillemets, qui indiquent que sur le jeu cette personne ne paie pas)
Lorsque j'indique ce pseudo, alors impossible de le mettre a jour dans la BDD !
Et ce n'est pas a cause des guillemets, car d'autres pseudos avec eux aussi des guillements fonctionnent... Ce n'est pas non plus le dernier pseudo de la table, il est en plein milieu...

Voilà le code :
<?php
$pseudo = $_POST["pseudo"];
$points = $_POST["points"];
$pass = $_POST["pass"];
if($pass != "XXXXXXXXXXX") {
	exit("Mot de passe incorrect<br/><br/><a href=\"addscore.php\">Retour</a>");
}
$present = "0";
$connexion = mysql_connect("mysql04-vh.amenworld.com","XXXXXXXX","XXXXXXXXXX");
mysql_select_db("XXXXXXXX");
$requete1 = "SELECT * FROM scores_pb";
$reponse1 = mysql_query($requete1);
while($line = mysql_fetch_assoc($reponse1)) {
   if ($pseudo == $line["pseudo"]) {
      $present = "1";
      $actuel = $line["score"];
   }
}
if($present == "0") {
   $requete = "INSERT INTO scores_pb (pseudo,score) VALUES ('$pseudo','$points')";
   $reponse = mysql_query($requete);
   $fin="Score correctement ajouté";
} else {
   $nouveau = $actuel + $points;
   $requete = "UPDATE `scores_pb` SET `score` = '$nouveau' WHERE `pseudo` = '$pseudo'";
   $reponse = mysql_query($requete);
   $fin="Score correctement mis à jour";
}
mysql_close($connexion);
if($reponse){
   echo $fin;
} else {
   echo "Impossible d'ajouter ou de mettre à jour le score";
}
?>
Et donc pour le pseudo "yohan" ça me renvoie "Impossible d'ajouter ou de mettre à jour le score"

Comment se fait-il alors que tous les autres marchent ?

Merci d'avance