Problème avec if et else et un tableau

Résolu
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   -  
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je suis en train de créer un jeu en ligne (php). Je suis a la création de la gestion d'équipement et j'ai un petit bout de code qui m'embête. Le schéma est le suivant :

-On compte toutes les entrées dans la tables items_equip
-Si le tableau retourne 0, on insère l'équipement actuel
-Si le tableau retourne autre chose, on update les entrées avec l'équipement actuel

Mon problème c'est que la première fois ca insère bien, mais quand on change d'équipement, au lieu d'update, il insère à nouveau.

Voici le code :

$test_carac_equip_brut = mysql_query('SELECT COUNT(*) FROM items_equip WHERE pseudo=\''.$_SESSION['pseudo'].'\'') or die(mysql_error());
$row_test_carac_equip = mysql_fetch_row($test_carac_equip_brut) or die(mysql_error());
$test_carac_equip_final = $row_test_carac_equip[0];
$zero = 0;
if (isset($test_carac_equip_row) == 0)
{
$query_insert_casque = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_casque_array['nom']."', '".$montre_casque_array['vie']."', '".$montre_casque_array['mana']."', '".$montre_casque_array['force']."', '".$montre_casque_array['vitesse']."', '".$montre_casque_array['defense']."', '".$zero."')") or die(mysql_error());
$query_insert_torse = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_torse_array['nom']."', '".$montre_torse_array['vie']."', '".$montre_torse_array['mana']."', '".$montre_torse_array['force']."', '".$montre_torse_array['vitesse']."', '".$montre_torse_array['defense']."', '".$zero."')");
$query_insert_gant = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_gant_array['nom']."', '".$montre_gant_array['vie']."', '".$montre_gant_array['mana']."', '".$montre_gant_array['force']."', '".$montre_gant_array['vitesse']."', '".$montre_gant_array['defense']."', '".$zero. "')");
$query_insert_botte = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_botte_array['nom']."', '".$montre_botte_array['vie']."', '".$montre_botte_array['mana']."', '".$montre_botte_array['force']."', '".$montre_botte_array['vitesse']."', '".$montre_botte_array['defense']."', '".$zero. "')");
$query_insert_arme = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_arme_array['nom']."', '".$montre_arme_array['vie']."', '".$montre_arme_array['mana']."', '".$montre_arme_array['force']."', '".$montre_arme_array['vitesse']."', '".$montre_arme_array['defense']."', '".$zero. "')");
$query_insert_bouclier = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_bouclier_array['nom']."', '".$montre_bouclier_array['vie']."', '".$montre_bouclier_array['mana']."', '".$montre_bouclier_array['force']."', '".$montre_bouclier_array['vitesse']."', '".$montre_bouclier_array['defense']."', '".$zero. "')");
}
else
{
$query_update_casque = mysql_query("UPDATE items_equip SET `item`='$montre_casque_array[nom]', `force`='$montre_casque_array[force]', `vitesse`='$montre_casque_array[vitesse]', `défense`='$montre_casque_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]'");
$query_update_torse = mysql_query("UPDATE items_equip SET `item`='$montre_torse_array[nom]', `vie`='$montre_torse_array[vie]', `mana`='$montre_torse_array[mana]', `force`='$montre_torse_array[force]', `vitesse`='$montre_torse_array[vitesse]', `defense`='$montre_torse_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]'");
$query_update_gant = mysql_query("UPDATE items_equip SET `item`='$montre_gant_array[nom]', `vie`='$montre_gant_array[vie]', `mana`='$montre_gant_array[mana]', `force`='$montre_gant_array[force]', `vitesse`='$montre_gant_array[vitesse]', `defense`='$montre_gant_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]'");
$query_update_botte = mysql_query("UPDATE items_equip SET `item`='$montre_botte_array[nom]', `vie`='$montre_botte_array[vie]', `mana`='$montre_botte_array[mana]', `force`='$montre_botte_array[force]', `vitesse`='$montre_botte_array[vitesse]', `defense`='$montre_botte_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]'");
$query_update_arme = mysql_query("UPDATE items_equip SET `item`='$montre_arme_array[nom]', `vie`='$montre_arme_array[vie]', `mana`='$montre_arme_array[mana]', `force`='$montre_arme_array[force]', `vitesse`='$montre_arme_array[vitesse]', `defense`='$montre_arme_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]'");
$query_update_bouclier = mysql_query("UPDATE items_equip SET `item`='$montre_bouclier_array[nom]', `vie`='$montre_bouclier_array[vie]', `mana`='$montre_bouclier_array[mana]', `force`='$montre_bouclier_array[force]', `vitesse`='$montre_bouclier_array[vitesse]', `defense`='$montre_bouclier_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]'");
}


Merci.
A voir également:

12 réponses

le père
 
Bonjour

À première vue, tu t'es planté et sur le nom de la variable, et sur la signification du isset :
if (isset($test_carac_equip_row) == 0)
est à remplacer par
if ($row_test_carac_equip == 0)
0
le père
 
Moi aussi je me suis trompé de variable ;-D

if ($test_carac_equip_final==0) ...
0
zcrew Messages postés 231 Date d'inscription   Statut Membre Dernière intervention   25
 
Vu comme ça en diagonale cette ligne me gène :
if (isset($test_carac_equip_row) == 0)


si tu fais
if (isset($test_carac_equip_row) === false)
il se passe quoi ?

et encore mieux, si tu inverses tes blocs et que tu te contentes de
if (isset($test_carac_equip_row))

0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
Résolu, le nom de ma variable de test n'était pas bonne et j'ai d'abord fais un isset, puis, dans cette condition, j'ai fais le test pour savoir si le tableau valait 0 ou non
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zcrew Messages postés 231 Date d'inscription   Statut Membre Dernière intervention   25
 
oki doki
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
Un autre problème. J'ai réglé mon code et tout marche... sauf le update. J'ai beau changer d'équipement, il ne veut pas update ma DB ^^
Voici le code :

$test_carac_equip_brut = mysql_query('SELECT COUNT(*) FROM items_equip WHERE pseudo=\''.$_SESSION['pseudo'].'\'') or die(mysql_error());
$row_test_carac_equip = mysql_fetch_row($test_carac_equip_brut) or die(mysql_error());
$test_carac_equip_final = $row_test_carac_equip[0];
$zero = 0;
if ($test_carac_equip_final == 0)
{
$query_insert_casque = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_casque_array['nom']."', '".$montre_casque_array['vie']."', '".$montre_casque_array['mana']."', '".$montre_casque_array['force']."', '".$montre_casque_array['vitesse']."', '".$montre_casque_array['defense']."', 'casque', '".$zero."')") or die(mysql_error());
$query_insert_torse = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_torse_array['nom']."', '".$montre_torse_array['vie']."', '".$montre_torse_array['mana']."', '".$montre_torse_array['force']."', '".$montre_torse_array['vitesse']."', '".$montre_torse_array['defense']."', 'torse','".$zero."')");
$query_insert_gant = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_gant_array['nom']."', '".$montre_gant_array['vie']."', '".$montre_gant_array['mana']."', '".$montre_gant_array['force']."', '".$montre_gant_array['vitesse']."', '".$montre_gant_array['defense']."', 'gant','".$zero. "')");
$query_insert_botte = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_botte_array['nom']."', '".$montre_botte_array['vie']."', '".$montre_botte_array['mana']."', '".$montre_botte_array['force']."', '".$montre_botte_array['vitesse']."', '".$montre_botte_array['defense']."', 'botte','".$zero. "')");
$query_insert_arme = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_arme_array['nom']."', '".$montre_arme_array['vie']."', '".$montre_arme_array['mana']."', '".$montre_arme_array['force']."', '".$montre_arme_array['vitesse']."', '".$montre_arme_array['defense']."', 'arme','".$zero. "')");
$query_insert_bouclier = mysql_query("INSERT INTO items_equip VALUES('', '".$_SESSION['pseudo']."', '".$montre_bouclier_array['nom']."', '".$montre_bouclier_array['vie']."', '".$montre_bouclier_array['mana']."', '".$montre_bouclier_array['force']."', '".$montre_bouclier_array['vitesse']."', '".$montre_bouclier_array['defense']."', 'bouclier','".$zero. "')");
}
else
{
$query_update_casque = mysql_query("UPDATE items_equip SET `item`='$montre_casque_array[nom]', `force`='$montre_casque_array[force]', `vitesse`='$montre_casque_array[vitesse]', `défense`='$montre_casque_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]' AND `type`=casque");
$query_update_torse = mysql_query("UPDATE items_equip SET `item`='$montre_torse_array[nom]', `vie`='$montre_torse_array[vie]', `mana`='$montre_torse_array[mana]', `force`='$montre_torse_array[force]', `vitesse`='$montre_torse_array[vitesse]', `defense`='$montre_torse_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]' AND `type`=torse");
$query_update_gant = mysql_query("UPDATE items_equip SET `item`='$montre_gant_array[nom]', `vie`='$montre_gant_array[vie]', `mana`='$montre_gant_array[mana]', `force`='$montre_gant_array[force]', `vitesse`='$montre_gant_array[vitesse]', `defense`='$montre_gant_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]' AND `type`=gant");
$query_update_botte = mysql_query("UPDATE items_equip SET `item`='$montre_botte_array[nom]', `vie`='$montre_botte_array[vie]', `mana`='$montre_botte_array[mana]', `force`='$montre_botte_array[force]', `vitesse`='$montre_botte_array[vitesse]', `defense`='$montre_botte_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]' AND `type`=botte");
$query_update_arme = mysql_query("UPDATE items_equip SET `item`='$montre_arme_array[nom]', `vie`='$montre_arme_array[vie]', `mana`='$montre_arme_array[mana]', `force`='$montre_arme_array[force]', `vitesse`='$montre_arme_array[vitesse]', `defense`='$montre_arme_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]' AND `type`=arme");
$query_update_bouclier = mysql_query("UPDATE items_equip SET `item`='$montre_bouclier_array[nom]', `vie`='$montre_bouclier_array[vie]', `mana`='$montre_bouclier_array[mana]', `force`='$montre_bouclier_array[force]', `vitesse`='$montre_bouclier_array[vitesse]', `defense`='$montre_bouclier_array[defense]', `equip`='$zero' WHERE `pseudo`='$_SESSION[pseudo]' AND `type`=bouclier");
}


Merci.
0
le père
 
Tu as entouré les valeurs de tes champs de simples quotes, ce qui est bien, mais tu as oublié d'en mettre à 'casque', 'torse', etc...
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
ah ouai xD merci

EDIT : même avec les quotes, il n'update pas
0
zcrew Messages postés 231 Date d'inscription   Statut Membre Dernière intervention   25
 
Et si tu essayais de découper tes update en plein de petites requêtes, ça sera plus lisible pour le débug

0
le père
 
Et si tu écrivais `défense` sans accent dans ton premier update ?
Tu devrais mettre des or die(... partout pour signaler les erreurs
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
J'ai tout réglé, mais ca n'update tjs pas :s
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
Résolu. Le problème venait de la base de données, j'avais nommé la colonne "défense" alors que dans les requêtes j'utilisai "defense".
Merci :)
0