Ramasser un objet - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Ramasser un objet (/showthread.php?tid=5191) |
RE: Ramasser un objet - julp - 24-01-2011 (24-01-2011, 01:43 PM)sawk a écrit : Ensuite, le problème est presque résolu (pressque ?) oui car le soucis c'est que je fait un INSERT ou UN DUPLICATE KEY UPDATE selon si l'objet existe déjà dans le sac...Pas d'erreur mais errorInfo est invoquée du mauvais objet (PDO vs PDOStatement) : Citation :PDO::errorInfo() retourne uniquement les informations des erreurs pour les opérations exécutées directement sur un gestionnaire de base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorInfo() ne retournera pas l'erreur depuis le gestionnaire de requête. Vous devez appeler la fonction PDOStatement::errorInfo() pour retourner les informations sur l'erreur pour une opération exécutée sur un gestionnaire de requête particulier.C'est donc or die(print_r($query->errorInfo(), TRUE)); Et TRUE au passage en second paramètre de print_r, pour que print_r renvoie une chaîne au lieu de l'afficher directement (et de renvoyer TRUE affiché ensuite comme '1' par die - celui qui traîne après l'affichage de l'array). Au moins cette question ne se pose plus avec le mode d'erreur basé sur les exceptions. RE: Ramasser un objet - niahoo - 24-01-2011 (24-01-2011, 05:12 PM)sawk a écrit : Bon en me basant sur un index UNIQUE ça semble logique, par contre ton champ id ne te sert à rien RE: Ramasser un objet - sawk - 24-01-2011 ouais pas bête. Mais j'ai remarquer un petit shmilblik... quand je fait l'update, c'est tous les "id_objet" qui prennent la valeur de la variable nombre, et non l'id en question... Code PHP :
RE: Ramasser un objet - atra27 - 24-01-2011 UPDATE sac SET nombre = nombre+1 WHERE id_membre = :id_membre AND id_objet = :objet ? RE: Ramasser un objet - sawk - 24-01-2011 Non même problème... Ca ajoute +1 aux id_objet 1, 2, 3 ..etc... RE: Ramasser un objet - niahoo - 24-01-2011 (24-01-2011, 10:10 PM)atra27 a écrit : UPDATE sac SET nombre = nombre+1 WHERE id_membre = :id_membre AND id_objet = :objet c'est pourtant incohérent avec cette requête ! RE: Ramasser un objet - sawk - 24-01-2011 Je suis perdu... RE: Ramasser un objet - atra27 - 25-01-2011 Comment sa fait t'il qu'il edite tous les Id d'objet alros que la requete demande d'editer seulement l'objet ayant l'id spécifié du joueur spécifié. Tu est sur de ton histoire de requete et que c'est bien celle que j'ai proposée qui est executée? RE: Ramasser un objet - Plume - 25-01-2011 T'es sûr que ta variable id_membre a bel et bien une valeur au moment de la génération de la requête ? Donne nous le résultat de :
En mettant cette instruction juste avant la requête. RE: Ramasser un objet - sawk - 26-01-2011 C'est pas la variable $id_membre, mais la variable $id (qui est apeller dans mon fichier header.php) elle prend la valeur de $_SESSION['log']. elle me retourne "int 2" donc elle est OK Voici la case "fouiller" du switch Code PHP :
|