IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Condition : je cale


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Par défaut [Tableaux] Condition : je cale
    Bonjour a tous ,
    voila je demarre en php et je trouve pas la solution a mon probleme depuis deja plusieur jour ,
    je recupere un score a la fin d'un jeux
    si le membre n'avez jamais jouer j'inscris son pseudo son score son avatar et la date dans la table nebil_score

    si le joueur avez deja jouer et donc qu'il a deja un score inscrit dans la table score
    si le nouveau score et plus fort que celui deja dans la table je met a jour
    le score et la date sinon je lui dit " ton score et trop faible pour etre mis a jour .

    c pour la mise a jour que cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    session_start();
    require("nebil_conf.php");
    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
    die('Tu n\'est pas autorisez à acceder à cette page.'); //Si non, on arrete le script et on affiche un message
    }
    
    $newscore=$_POST['score'];  // score a la fin du jeux 
    $pseudo_membre = $_SESSION['pseudo'];  // le pseudo du joueur
    $sql = connect_sql(); //Connection..
    
    $requete = mysql_query("SELECT * FROM nebil_score WHERE pseudo='$pseudo_membre '");   
    $var = mysql_fetch_array ($requete);  // je recherche si le membre est deja dans la table score 
    
    $score=$var['score'];
    $pseudo=$var['pseudo'];
    $datetime = date("Y-m-d H:i:s");
    
    if(empty($pseudo))    // si le menbre n'est pas dansla table score  
    {
    $requete = mysql_query("SELECT * FROM nebil_menbre WHERE `pseudo`='$pseudo_membre'");
    $var = mysql_fetch_array ($requete);
    $avatar =$var['avatar'];   // je recupere l'avatar dans la table membre
    
    mysql_query ("INSERT INTO nebil_score(id,pseudo,avatar,score,date)  //et j'insert le tout dans la table score
    VALUES('','$pseudo_membre ','$avatar','$newscore','$datetime')");
     $reponse ='ton compte score a ete cree ';
    }
    
    if($pseudo_membre=$pseudo)  // si le membre est dans la table score je met a jour les données 
    {
    $requete1 = mysql_query("SELECT * FROM nebil_score WHERE `pseudo`='$pseudo_membre' and score<'$newscore' ");
    mysql_query("update  nebil_score(id,score,date) VALUES('','$newscore','$datetime')");
    $reponse = 'Vos données on été actualisées. ';
    }
    
    else   // et si le nouveau score et < au score deja dans la table 
    {
    $reponse ='ton score est trop faible pour etre mis a jour';
    }
    
    ?>
    
    <html>
    <head>
    <?php
    echo "$reponse";
    ?>
    
    </head>
    </html>

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    perso je ferais plutôt comme ça (je mets pas tout le code hein ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $result = mysql_query('SELECT score FROM table WHERE pseudo = \''.$_POST['pseudo'].'\');
    if(mysql_num_rows($result) == 0)
    {
       ///le joueur n'est pas dans la BDD, on insert
    } else {
       $row = mysql_fetch_array($result);
       if($row['score'] < $_POST['score'])
       {
           ///nouveau score plus important : mise à jour
       } else {
           ///nouveau score plus faible (ou égale) : pas de mise à jour
       }
    }
    mysql_free_result($result);
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éclairé Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Par défaut
    ta requête d'update me parait bizarre.
    a-tu essayé une requete du genre:

    UPDATE nebil_score SET score='$newscore', date='$datetime' WHERE pseudo='$pseudo_membre' and score<'$newscore'

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Par défaut
    Merci a renaudjuif je vais retenir a l'avenir ta facon , plus courte moins de gymnastique !!

    et Merci Swoög car effectivement sa marche maintenant
    avec UPDATE nebil_score SET score='$newscore' .....

    A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par nebil

    if($pseudo_membre=$pseudo) // si le membre est dans la table score je met a jour les données
    {
    $requete1 = mysql_query("SELECT * FROM nebil_score WHERE `pseudo`='$pseudo_membre' and score<'$newscore' ");
    mysql_query("update nebil_score(id,score,date) VALUES('','$newscore','$datetime')");
    $reponse = 'Vos données on été actualisées. ';
    }

    [/code]
    Il y une erreur dans ta condition IF : "$pseudo_membre=$pseudo" n'est pas une condition mais une assignation...

    Donc première chose à changer : $pseudo_membre==$pseudo.

    (Erreur classique !).

    Une bonne habitude à prendre :

    Utilise toujours la fonction mysql_real_escape_string pour échapper chaque variable utilisée dans une requête MySQL...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/06/2009, 12h38
  2. [Tableaux] Conditions d'une boucle non respectée
    Par Lenezir dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2008, 09h17
  3. [Tableaux] Rajouter une condition dans un test
    Par kevinf dans le forum Langage
    Réponses: 11
    Dernier message: 08/11/2006, 16h03
  4. [Tableaux] Mais que fait cette condition exactement?
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 21/09/2006, 12h36
  5. [Tableaux] conditions
    Par samplaid dans le forum Langage
    Réponses: 7
    Dernier message: 11/04/2006, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo