Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 07/03/2010, 22h51   #1
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
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 :
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 :
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

Dernière modification par Antoun ; 07/03/2010 à 23h15.
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2010, 23h16   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 832
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 41
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 832
Points : 9 482
Points : 9 482
Juste après ton INSERT, tu récupères l'ID qui vient d'être créée avec :

Code PHP :
$id = mysql_insert_id() ;
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2010, 23h21   #3
Expert Confirmé Sénior
 
Avatar de Graffito
 
Inscription : janvier 2006
Messages : 4 542
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 4 542
Points : 4 756
Points : 4 756
Code SQL :
WHERE id=LAST_INSERT_ID()
__________________
" Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson
Graffito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 00h37   #4
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
Code :
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 :
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

Dernière modification par kinder069 ; 08/03/2010 à 00h50.
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 01h00   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 832
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 41
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 832
Points : 9 482
Points : 9 482
Le premier INSERT INTO, c'est la création du duel ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 01h28   #6
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Antoun Voir le message
Le premier INSERT INTO, c'est la création du duel ?
oui ...
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 02h07   #7
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 832
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 41
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 832
Points : 9 482
Points : 9 482
Donc :

Code :
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");
}
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 03h34   #8
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Antoun Voir le message
Donc :

Code :
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
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 04h21   #9
Membre expérimenté
 
Avatar de nsanabi
 
Homme nabil nayd
Inscription : septembre 2003
Messages : 566
Détails du profil
Informations personnelles :
Nom : Homme nabil nayd

Informations forums :
Inscription : septembre 2003
Messages : 566
Points : 596
Points : 596
Envoyer un message via MSN à nsanabi
Citation:
Code :
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 :
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 :
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
nsanabi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 09h22   #10
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur développement logiciels
Inscription : août 2006
Messages : 10 050
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 050
Points : 16 352
Points : 16 352
Envoyer un message via MSN à CinePhil
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 :
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 09h36   #11
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 832
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 41
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 832
Points : 9 482
Points : 9 482
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.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 09h37   #12
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 832
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 41
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 832
Points : 9 482
Points : 9 482
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 ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 18h21   #13
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
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 :
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
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 19h00   #14
Membre expérimenté
 
Avatar de nsanabi
 
Homme nabil nayd
Inscription : septembre 2003
Messages : 566
Détails du profil
Informations personnelles :
Nom : Homme nabil nayd

Informations forums :
Inscription : septembre 2003
Messages : 566
Points : 596
Points : 596
Envoyer un message via MSN à nsanabi
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.
nsanabi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 19h30   #15
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
Code :
1
2
//enemy
$query = doquery("SELECT * FROM {{table}} WHERE username='".$_POST['enemy']."' LIMIT 1", "users");
Code :
1
2
//on lance le duel 
$query = doquery("SELECT * FROM {{table}} WHERE username='".$_POST['enemy']."' LIMIT 1", "users");
Code :
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 :
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 :
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 :
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 ;

Dernière modification par kinder069 ; 08/03/2010 à 19h44.
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 20h07   #16
Membre expérimenté
 
Avatar de nsanabi
 
Homme nabil nayd
Inscription : septembre 2003
Messages : 566
Détails du profil
Informations personnelles :
Nom : Homme nabil nayd

Informations forums :
Inscription : septembre 2003
Messages : 566
Points : 596
Points : 596
Envoyer un message via MSN à nsanabi
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 :
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 :
1
2
3
 
if (isset($_GET["idduel"]))
doquery("DELETE FROM {{table}} WHERE id='".$_GET["idduel"]."'", "duel");
nsanabi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 20h40   #17
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
bonsoir, oui c'est exacte ^^

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

Code :
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
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 21h06   #18
Membre expérimenté
 
Avatar de nsanabi
 
Homme nabil nayd
Inscription : septembre 2003
Messages : 566
Détails du profil
Informations personnelles :
Nom : Homme nabil nayd

Informations forums :
Inscription : septembre 2003
Messages : 566
Points : 596
Points : 596
Envoyer un message via MSN à nsanabi
eh ben voilà!
puisque tu récupère tout les defis avec le fameux
Code :
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 :
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 :
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 :
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 :
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
nsanabi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 22h07   #19
Invité de passage
 
Inscription : mars 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par nsanabi Voir le message
eh ben voilà!
puisque tu récupère tout les defis avec le fameux
Code :
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 :
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 :
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 :
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 :
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
kinder069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 23h11   #20
Membre expérimenté
 
Avatar de nsanabi
 
Homme nabil nayd
Inscription : septembre 2003
Messages : 566
Détails du profil
Informations personnelles :
Nom : Homme nabil nayd

Informations forums :
Inscription : septembre 2003
Messages : 566
Points : 596
Points : 596
Envoyer un message via MSN à nsanabi
il doit te manquer une accolade ou un ;
montrer les lignes de codes soupçonnées
nsanabi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h09.


 
 
 
 
Partenaires

Hébergement Web