TourDeJeu, le portail des jeux en ligne alternatifs, les articles 
TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +
En ligne : 490 jeux, 7155 news, 26679 commentaires
 

Recherche de jeu par critères - Un jeu au hasard !

Les Focus

Tech. : Le programmeur écologique
Tech. : automatisation et mails
Salon MondeDuJeu 2002
Revue de presse des JpC
Humour : 1001 raisons pour jouer
Ludique : le joueur parfait
Ludique : découverte du JpC
PHP : accès base de données
PHP : structure du site
Ludique : JpC et Temps réel
Jeux de rôles sans règles
Humour : astrologie du JpC
Tech. : Bases de données
MJ : les joueurs multiples
PHP : utilité pour un JpC
PHP : c'est quoi ?
Tech. : l'analyse des ordres
Ludique : débutants et vétérans
Tech. : archi Ultraball 2100
Ludique : les jeux de pronos
Tech. : le site Web d'un JpC
Humour : football et wargame
Présentation de TourDeJeu

Accès la base de données MySQL pour son jeu PHP

Suppression de données, et passage de paramètres aux pages

Dans notre liste de parties, on veut pouvoir en supprimer si on s'est trompés. Il suffit de savoir quel identifiant supprimer, et d'envoyer un ordre SQL de type DELETE à la base.

Dans notre liste des parties, on peut ajouter sur chaque ligne un lien pour supprimer la partie, en passant l'identifiant en paramètre, ainsi qu'un code de suppression. Pas la peine de passer par un formulaire pour envoyer des paramètres qu'on connait déjà !

Pour cela, on passe le paramètre dans l'url de la page. On va appeler notre même page listepartie.php, avec un paramètre action, et un autre parametre id. La syntaxe à utiliser est d'appeler l'url du type :

listepartie.php?action=S&id=2

Donc le code à insérer dans le tableau est :

echo "<a href=\"listepartie.php?action=S&id=".$myrow["id"]."\">Supprimer</a>";

Dans la page en question, comme quand on reçoit un paramètre d'un formulaire, on aura une variable du nom de chaque paramètre. $action qui vaut "S" et $id qui vaut 2, dans notre exemple.

if ($action=="S") {
	//---- dans ce cas, on suprrime la partie -----
	// attention, il faut que la partie soit en état création
	// on interdit de la supprimer sinon !
	$sql = "DELETE FROM fish_partie WHERE id=$id and etat=1";
	if (mysql_query($sql) and mysql_affected_rows()==1) {
			echo"<p>La partie n° ".$id." a été supprimée.";
	}
		else {
			echo "<p>Problème lors de l'exécution de l'ordre ".$sql;
	}
}

On a ajouté une vérification du code état, pour ne pas supprimer une partie en cours ! Dans ce cas, autant ne pas afficher le lien de suppression dans la liste.. on ajoute donc un test de l'état pour ne créer le lient qu'en cas d'état à 1.

Le hic est que la colonne état (de type ENUM) renvoie par défaut le libellé et non le code de la valeur. Pour obtenir le code, un truc est de demander dans l'ordre select la colonne etat+0 ! on donne un alias à cette colonne pour la référencer plus facilement. Par exemple, on peut écrire :

SELECT id, etat, etat+0 AS numetat FROM fish_partie

Retour au sommaire de l'article 

(c) TourDeJeu 2000-2020