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

PHP & Base de données Discussion :

Problème auto-incrément


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Problème auto-incrément
    Bonsoir, voilà mon problème, je bosse sur un jeu en PHP/MySQL.

    Mon problème se pose sur ma page duel qui est en cours de création

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    doquery("INSERT INTO {{table}} 
      SET id='', defiant='".$userrow["id"]."', mise='".$_POST['mise']."', 
      name='".$userrow["username"]."', receveur='".$_POST["enemy"]."', 
      fightlvl='$fightlvl'", "duel");
    L'id est en auto_increment, oui, mais voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    doquery("DELETE FROM {{table}} WHERE id=
    Cette partie sert à supprimer le duel une fois qu'il a été accepté et terminé

    Je ne suis pas tres doué en sql et je ne vois pas comment faire car l'id=??

    En auto_increment je bloque :s si quelqu'un a une solution pour moi ^^

    merci et bonne soirée

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Juste après ton INSERT, tu récupères l'ID qui vient d'être créée avec :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = mysql_insert_id() ;

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE id=LAST_INSERT_ID()

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    doquery("INSERT INTO {{table}} SET id='', defiant='".$userrow["id"]."', bet='".$_POST['bet']."', name='".$userrow["username"]."', receveur='".$_POST["enemy"]."', fightlvl='$fightlvl'", "duel");
    doquery("UPDATE {{table}} SET gold='$gold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //on efface le duel dans les sql a la fin du combas
    doquery("DELETE FROM {{table}} WHERE id='$id'", "duel");
    }

    merci pour vos réponses mais toujours le même problème c'est vraiment pas mon truc je vous montre mon code d'origine

    merci a vous

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Le premier INSERT INTO, c'est la création du duel ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Le premier INSERT INTO, c'est la création du duel ?
    oui ...

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    doquery("INSERT INTO {{table}} SET id='', defiant='".$userrow["id"]."', bet='".$_POST['bet']."', name='".$userrow["username"]."', receveur='".$_POST["enemy"]."', fightlvl='$fightlvl'", "duel");
    $id = mysql_insert_id() ;
    doquery("UPDATE {{table}} SET gold='$gold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
    
    
    //ON efface le duel dans les sql a la fin du combas
    doquery("DELETE FROM {{table}} WHERE id='$id'", "duel");
    }

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    doquery("INSERT INTO {{table}} SET id='', defiant='".$userrow["id"]."', bet='".$_POST['bet']."', name='".$userrow["username"]."', receveur='".$_POST["enemy"]."', fightlvl='$fightlvl'", "duel");
    $id = mysql_insert_id() ;
    doquery("UPDATE {{table}} SET gold='$gold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
    
    
    //ON efface le duel dans les sql a la fin du combat
    doquery("DELETE FROM {{table}} WHERE id='$id'", "duel");
    }

    re, merci pour ton aide, mais j'ai toujours le même problème si j'enlève l'auto incrément mon code marche parfaitement mais je ne peut faire qu'un seul combat vu que que si j'en fait 2 il me duplique l'id je ne comprend pas grrr

    désolé pour les fautes je corrige quand je les voient mais je vois très mal ^^

    merci

  9. #9
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doquery("DELETE FROM {{table}} WHERE id=
    Cette partie sert à supprimer le duel une fois qu'il a été accepté et terminé
    je suppose que la suppression dont tu parle ici ne sera pas exécutée au même moment que l'insertion d'un nouveau duel: je veux dire pas dans le même script ou du moins pas dans le même appel au script.

    si cela est vrai : stocker l'id du duel qui viens d'être inséré dans une variable de session pour qu'il soit accessible au second appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //ton premier appel, ou premier script php
    doquery("INSERT INTO {{table}} SET id='', defiant='".$userrow["id"]."', bet='".$_POST['bet']."', name='".$userrow["username"]."', receveur='".$_POST["enemy"]."', fightlvl='$fightlvl'", "duel");
    $_SESSION["idDuel"]= mysql_insert_id() ;
    doquery("UPDATE {{table}} SET gold='$gold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //au second appel, ou second script php
    if (isset($_SESSION["idDuel"]))
    doquery("DELETE FROM {{table}} WHERE id='".$_SESSION["idDuel"]."'", "duel");
    je note que tu pouvait recourir à un champs hidden ou un paramètre d'url.

    ps: cette fonction doquery, d'où elle viens? c'est la troisième fois que je la vois

  10. #10
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Au passage, inutile de tenter d'insérer une chaîne vide dans une colonne id autoincrémentée daonc de surcroit de type entier.

    Il est probable également que la colonne defiant, prenant en valeur un id, soit elle aussi de type entier. Inutile alors d'entourer la valeur d'apostrophes.

    Ca devrait donc plutôt donner ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    doquery("
      INSERT INTO {{table}} 
      SET defiant= ".$userrow["id"].", 
        bet='".$_POST['bet']."', 
        name='".$userrow["username"]."', 
        receveur='".$_POST["enemy"]."', 
        fightlvl='$fightlvl'", 
      "duel"
    );
    Je me demande d'ailleurs pourquoi on trouve des noms dans cette table de duels plutôt que des identifiants. N'y aurait-il pas encore quelques problèmes de modélisation des données ?

    Et je me pose la même question concernant ce "doquery" et la syntaxe inhabituelle de requête INSERT !
    En encore plus pour la requête UPDATE !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  11. #11
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Et je me pose la même question concernant ce "doquery" et la syntaxe inhabituelle de requête INSERT !
    C'est accepté par MySQL, sur le modèle de l'UPDATE.

  12. #12
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Citation Envoyé par kinder069 Voir le message
    re, merci pour ton aide, mais j'ai toujours le même problème si j'enlève l'auto incrément mon code marche parfaitement mais je ne peut faire qu'un seul combat vu que que si j'en fait 2 il me duplique l'id je ne comprend pas grrr

    désolé pour les fautes je corrige quand je les voient mais je vois très mal ^^

    merci
    Peux-tu me dire en quoi mon code ne fonctionne pas ?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Bonjour,

    merci a tous pour vos réponses, mon problème est plutôt simple en utilisant vos requêtes le duel est bien mi dans la base, il est bien envoyer au destinataire, mais une fois le combat fini il ne se supprime pas

    en passant il est vrais que mon code doit être améliorée mais c'est mon premier code donc dans le fond c'est un bon début ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mise='".$_POST['mise]."',  (et non pas bet désolé de l'erreur) qui sert a savoir quel est la mise en or
     
    SET defiant= ".$userrow["id"].",  qui lance le défis 
     
    receveur='".$_POST["enemy"]."', qui est défier ? sert a envoyer le défis a la bonne personne, ["enemy"] est récupère en début de script au moment du choix de qui je veux attaqué
     
    name='".$userrow["username"] j'avoue que la c'est une erreur de ma part cette fonction marche mais aucune utilité
    voila donc mon code marche même si il est pas au top, mon seul probleme reste au le moment ou le duel doit être supprimé de la base

    comme a dit "nsanabi" "je suppose que la suppression dont tu parle ici ne sera pas exécutée au même moment que l'insertion d'un nouveau duel"

    c'est exacte, une fois le duel dans la base il s'affiche sur la page "demande de duel" du défier

    donc le duel ne sera pas supprimé tout de suite vu que le duel est une demande et non pas une attaque instantané

    mais grâce a vous j'apprends plein de chose merci bien

  14. #14
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    au final, est ce que ton problème est résolu en utilisant des variables de session ou peut être des champ hidden???
    si non, explique nous en détails quelle page php fait appel à quelle page php en montrant les codes concernés dans chacune. cela accélérera la résolution de ton problème.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //enemy
    $query = doquery("SELECT * FROM {{table}} WHERE username='".$_POST['enemy']."' LIMIT 1", "users");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //on lance le duel 
    $query = doquery("SELECT * FROM {{table}} WHERE username='".$_POST['enemy']."' LIMIT 1", "users");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //insert duel dans la base
    $gold = $userrow["gold"] - $_POST['mise'];
    $fightlvl = $userrow["strength"] + $userrow["dexterity"]; 
    doquery("INSERT INTO {{table}} SET id='', defiant='".$userrow["id"]."', mise='".$_POST['mise']."', name='".$userrow["username"]."', receveur='".$_POST["enemy"]."', fightlvl='$fightlvl'", "duel");
    $_SESSION["idDuel"]= mysql_insert_id() ;
    doquery("UPDATE {{table}} SET gold='$gold' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //on accepte le duel
    function fight2() {
     
    global $userrow, $numqueries;
     
    $query = doquery("SELECT * FROM {{table}} WHERE receveur='".$userrow["charname"]."'", "duel");
    $rank = 1;
     
    if (mysql_num_rows($query) == 0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //on efface le duel dans la base
    if (isset($_SESSION["idDuel"]))
    doquery("DELETE FROM {{table}} WHERE id='".$_SESSION["idDuel"]."'", "duel");
    ma page duel fait 374 lignes en gros cette page fait tout, création suppression, intègre la page de création de duel + celle des demandes de duel
    toute la partie duel est sur la même et unique page
    c'est un vrais bordel ^^

    username : nom du jouer
    charname : non de la bête du jouer

    je comprend bien que vous pouvez pas vraiment savoir sans voir mon code en entier mais bon 300 lignes ici certains vont mal le vivre ^^

    "champ hidden" désolé pour l'instant je comprend pas très bien les fonctions sql

    Edit voici ma table duel a mon avis a amélioré ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE `game_duel` (
      `id` smallint(5) unsigned NOT NULL auto_increment,  
      `mise` mediumint(9) NOT NULL default '0',  
      `name` varchar(30) NOT NULL default '',
      `receveur` varchar(30) NOT NULL default '',
      `defiant` smallint(6) NOT NULL default '0',
      `fightlvl` varchar(25) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 AUTO_INCREMENT=39 ;

  16. #16
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    si j'ai bien compri, un utilisateur demande un autre en duel, quand le second accepte le duel, il y a une sorte de traitement ou calcul qui est fait, puis on met à jour les infos du joueur (normalement des deux non?), et là juste à la fin tu veux supprimer le duel.
    l'insertion du duel dans la table se fait avant son acceptation par le second joueur (si j'ai rien raté)
    de toute façon tu ne poura retrouvé une variable de session d'un utilisateur A dans la session de l'utilisateur B
    donc la solution des sessions est à oublié.

    j'avoue que c'est un peu ... je vais expliquer ce j'ai compris (si j'ai réussi à comprendre quelque chose):
    - un joueur A lance un défi à un joueur B et là le duel est inseré direct sur ta table
    - le duel apparait chez le joueur B qui peut l'accepter ou non : là tu doit avoir un moyen pour récupérer le duel non? si oui tu PEUX récupérer son id aussi, il te reste à le mettre en paramètre devant le lien "accepter le duel" ou un truc du genre (un champ hidden si formulaire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="tapageduel.php?idduel=<?php echo $recuperationDuelDepuisTable['id'];?>">accepter le duel</a>
    - quand le joueur B clique pour confirmer le duel il donne à ton script l'id du duel, que tu utilisera pour la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (isset($_GET["idduel"]))
    doquery("DELETE FROM {{table}} WHERE id='".$_GET["idduel"]."'", "duel");

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    bonsoir, oui c'est exacte ^^

    voila comment j'affiche le duel si on est vraiment le défier :

    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
    //on accepte le duel
    function fight2() {
     
    global $userrow, $numqueries;
     
    $query = doquery("SELECT * FROM {{table}} WHERE receveur='".$userrow["charname"]."'", "duel");
    $rank = 1;
     
    if (mysql_num_rows($query) == 0)
    {
    $page .= '<table align="center" width="309" height="19">';
    $page .= '<tr>';
    $page .= '<td align="center" class="textePetit" width="309" height="19" background="images/duel/defier_rival_desc.gif">Vous n\'avez pas de defie.</td>';
    $page .= '</tr>';
    $page .= '</table>';
    }
    else
    {
    $page .= '<table width="452">';
    $page .= '<tr>';
    $page .= '<td class="textePetit" width="446">Defi(s)</td>';
    $page .= '</tr>';
    $page .= '</table>';
     
    $page .= '<table width="451" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">';
    $page .= '<tr>';
    $page .= '<td class="textePetit" width="26" height="19" align="center" background="images/duel/classe_nb.gif"><strong>ID</strong></td>';
    $page .= '<td class="textePetit" width="91" height="19" align="center" background="images/duel/classe_name.gif"><strong>Défier</strong></td>';
    $page .= '<td class="textePetit" width="75" height="19" align="center" background="images/duel/defier_mise.gif"><strong>Mise</strong></td>';
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_accepte.gif"><strong>Clic</strong></td>';
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_refuser.gif"><strong>Clic</strong></td>';
    $page .= '</tr>';
     
    while ($row = mysql_fetch_array($query))
    {
    $page .= '<tr>';
    $page .= '<td class="textePetit" width="26" height="19" align="center" background="images/duel/classe_nb.gif"><b>'.$rank.'</b></td>';
    $page .= '<td class="textePetit" width="91" height="19" align="center" background="images/duel/classe_name.gif">'.$row['name'].'</td>';
    $page .= '<td class="textePetit" width="75" height="19" align="center" background="images/duel/defier_mise.gif">'.$row['mise'].'</td>';
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_accepte.gif"><a href="index.php?page=fight3:'.$row["id"].'">[Accepter]</a></td>';
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_refuser.gif"><a href="index.php?page=fight4:'.$row["id"].'">[Refuser]</a></td>';
    $page .= '</tr>';
    $rank++;
    }
    ensuite oui il a des mises a jours de la table users, a savoir gold si on gagne +mise si on perd -mise, ensuite mise a jours de l'expérience+1 ect... :s

  18. #18
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    eh ben voilà!
    puisque tu récupère tout les defis avec le fameux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query = doquery("SELECT * FROM {{table}} WHERE receveur='".$userrow["charname"]."'", "duel");
    ....
     
    while($row = mysql_fetch_array($query))
    tu a aussi l'id de ceux là : $row['id']
    donc tu peut l'envoyer an paramètre de ton lien accepter
    ET c'est ce qui est fait sur ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_accepte.gif"><a href="index.php?page=fight3:'.$row["id"].'">[Accepter]</a></td>';
    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    while ($row = mysql_fetch_array($query))
    {
    $page .= '<tr>';
    $page .= '<td class="textePetit" width="26" height="19" align="center" background="images/duel/classe_nb.gif"><b>'.$rank.'</b></td>';
    $page .= '<td class="textePetit" width="91" height="19" align="center" background="images/duel/classe_name.gif">'.$row['name'].'</td>';
    $page .= '<td class="textePetit" width="75" height="19" align="center" background="images/duel/defier_mise.gif">'.$row['mise'].'</td>';
    //iciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_accepte.gif"><a href="index.php?page=fight3:'.$row["id"].'">[Accepter]</a></td>';
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_refuser.gif"><a href="index.php?page=fight4:'.$row["id"].'">[Refuser]</a></td>';
    $page .= '</tr>';
    $rank++;
    }
    comme pour la fonction doquery, c'est un code zarbi, sur quels outils plateforme framework cms ou kit de développement tu travail????

    l'essentiel est que tu peut récupérer $_GET['page'] qui contient l'id du duel
    faire ceci pour la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_GET["page"])){
    //$_GET["page"] contient fight3:12 où 12 est l'id par exemple
    list ($fight, $idDuel)=split(':', $_GET["page"]); //je prend l'id
    doquery("DELETE FROM {{table}} WHERE id='".$idDuel."'", "duel");
    }
    je note que le duel sera supprimé dans le cas ou il est refusé aussi, si tu ne veux pas cela, ajoute une condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_GET["page"])){
    //$_GET["page"] contient fight3:12 où 12 est l'id par exemple
    list ($fight, $idDuel)=split(':', $_GET["page"]); //je prend l'id
    if($fight=="fight3")
    doquery("DELETE FROM {{table}} WHERE id='".$idDuel."'", "duel");
    }
    j'espère que cette foi sera la bonne

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Citation Envoyé par nsanabi Voir le message
    eh ben voilà!
    puisque tu récupère tout les defis avec le fameux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query = doquery("SELECT * FROM {{table}} WHERE receveur='".$userrow["charname"]."'", "duel");
    ....
     
    while($row = mysql_fetch_array($query))
    tu a aussi l'id de ceux là : $row['id']
    donc tu peut l'envoyer an paramètre de ton lien accepter
    ET c'est ce qui est fait sur ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_accepte.gif"><a href="index.php?page=fight3:'.$row["id"].'">[Accepter]</a></td>';
    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    while ($row = mysql_fetch_array($query))
    {
    $page .= '<tr>';
    $page .= '<td class="textePetit" width="26" height="19" align="center" background="images/duel/classe_nb.gif"><b>'.$rank.'</b></td>';
    $page .= '<td class="textePetit" width="91" height="19" align="center" background="images/duel/classe_name.gif">'.$row['name'].'</td>';
    $page .= '<td class="textePetit" width="75" height="19" align="center" background="images/duel/defier_mise.gif">'.$row['mise'].'</td>';
    //iciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_accepte.gif"><a href="index.php?page=fight3:'.$row["id"].'">[Accepter]</a></td>';
    $page .= '<td class="textePetit" width="132" height="19" align="center" background="images/duel/defier_refuser.gif"><a href="index.php?page=fight4:'.$row["id"].'">[Refuser]</a></td>';
    $page .= '</tr>';
    $rank++;
    }
    comme pour la fonction doquery, c'est un code zarbi, sur quels outils plateforme framework cms ou kit de développement tu travail????

    l'essentiel est que tu peut récupérer $_GET['page'] qui contient l'id du duel
    faire ceci pour la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_GET["page"])){
    //$_GET["page"] contient fight3:12 où 12 est l'id par exemple
    list ($fight, $idDuel)=split(':', $_GET["page"]); //je prend l'id
    doquery("DELETE FROM {{table}} WHERE id='".$idDuel."'", "duel");
    }
    je note que le duel sera supprimé dans le cas ou il est refusé aussi, si tu ne veux pas cela, ajoute une condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_GET["page"])){
    //$_GET["page"] contient fight3:12 où 12 est l'id par exemple
    list ($fight, $idDuel)=split(':', $_GET["page"]); //je prend l'id
    if($fight=="fight3")
    doquery("DELETE FROM {{table}} WHERE id='".$idDuel."'", "duel");
    }
    j'espère que cette foi sera la bonne

    re, quand j'utilise ton code delete : Parse error: syntax error, unexpected $end

  20. #20
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    il doit te manquer une accolade ou un ;
    montrer les lignes de codes soupçonnées

Discussions similaires

  1. problème d'auto incrémentation
    Par senv33 dans le forum Débuter
    Réponses: 8
    Dernier message: 24/02/2010, 13h43
  2. Problème auto-incrément SQLServer
    Par yannick34 dans le forum Développement
    Réponses: 8
    Dernier message: 19/10/2009, 13h42
  3. Clé primaire auto incrémentée, problème insertion
    Par barnoufal dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 12/02/2008, 17h17
  4. Problème d'auto-incrément
    Par rageice dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/12/2007, 23h33
  5. Problème de mise à jour des champs Auto incrémentés avec VB6.
    Par NHenry dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/05/2007, 16h06

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