14-07-2011, 06:09 PM
Au delà du fait que la structure de ta table n'est peut-être pas optimisée, et que tu as l'air de confondre table et ligne, ton script n'est pas cohérent.
Le but du script, si j'ai bien compris, c'est d'ajouter une ligne de ressource de l'utilisateur, si la ligne n'existe encore pas.
Tout d'abord tu fais ça :
Mais le champ id, c'est la clé de ta table de ressource ? Il faudrait plutôt que tu fasses le test sur le champ joueur qui correspond à l'id du joueur que tu veux tester.
Ensuite tu parcours tes données avec fetch.
Et pour chacune des lignes, tu teste si id est null.
Mais c'est impossible que id soit null, c'est la clé primaire de ta table.
Si ton utilisateur n'a pas de ressource, ce n'est pas la valeur d'id qu'il faut que tu teste (car elle sera toujours non null), mais la présence, ou plutôt l'absence de ligne dans ton résultat.
Le but du script, si j'ai bien compris, c'est d'ajouter une ligne de ressource de l'utilisateur, si la ligne n'existe encore pas.
Tout d'abord tu fais ça :
$reponse = $bdd->query("SELECT * FROM ressources WHERE id= ' " . $id ." ' ");
Mais le champ id, c'est la clé de ta table de ressource ? Il faudrait plutôt que tu fasses le test sur le champ joueur qui correspond à l'id du joueur que tu veux tester.
Ensuite tu parcours tes données avec fetch.
Et pour chacune des lignes, tu teste si id est null.
Mais c'est impossible que id soit null, c'est la clé primaire de ta table.
Si ton utilisateur n'a pas de ressource, ce n'est pas la valeur d'id qu'il faut que tu teste (car elle sera toujours non null), mais la présence, ou plutôt l'absence de ligne dans ton résultat.