Problème avec if et else et un tableau

Résolu
aneantisseur Messages postés 377 Date d'inscription   Statut Membre Dernière intervention   -  
aneantisseur Messages postés 377 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.
Configuration: Windows Vista
Firefox 3.5.7

12 réponses

  1. 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
  2. le père
     
    Moi aussi je me suis trompé de variable ;-D

    if ($test_carac_equip_final==0) ...
    0
  3. zcrew Messages postés 251 Statut Membre 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
  4. aneantisseur Messages postés 377 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zcrew Messages postés 251 Statut Membre 25
     
    oki doki
    0
  7. aneantisseur Messages postés 377 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
  8. 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
  9. aneantisseur Messages postés 377 Date d'inscription   Statut Membre Dernière intervention   18
     
    ah ouai xD merci

    EDIT : même avec les quotes, il n'update pas
    0
  10. zcrew Messages postés 251 Statut Membre 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
  11. 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
  12. aneantisseur Messages postés 377 Date d'inscription   Statut Membre Dernière intervention   18
     
    J'ai tout réglé, mais ca n'update tjs pas :s
    0
  13. aneantisseur Messages postés 377 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