Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 17/10/2006, 21h35   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
Par défaut [Conception] Conception d'un site dynamique : modifier et supprimer un membre

Bonsoir,

j'ai suivi la méthode du tuto "conception d'un site dynamique" de Pierre-Baptiste Naigeon et je me trouve face à deux problemes, je vous montre une partie du code puis j'explique :

Code :
1
2
3
4
5
6
7
8
9
10
<?php
$recherche = mysql_query ("SELECT * FROM membre ORDER BY id");
while ($var = mysql_fetch_array ($recherche))	 
{
	$id = $var['id'];
	$pseudo = $var['pseudo']; 
?>
<td>Pseudo: <?php echo $pseudo; ?></td>
<td><a href="index.php?id_page=46?pseudo=<?php echo $pseudo; ?>">Modifier</a></td>
<td><a href="index.php?id_page=45?supprimer=<?php echo $id; ?>">Supprimer</a></td>
Pour situer : index.php?id_page=45 est ma page "Liste_membres.php" insérée par un include dans la base de donnée.
index.php?id_page=46 est ma page "Modif_membres.php", toujours insérée dans la BDD

Le problème : je ne peux ni supprimer ni modifier un membre.
J'ai forcément un probleme de compréhension, je débute.. Merci à vous de bien vouloir m'eclaircir
Nag_Champa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 22h22   #2
Membre du Club
 
Inscription : décembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 101
Points : 45
Points : 45
Dans ton code, tu ne fais que créer un lien vers une page ou tu vas traiter les infos que tu transmets via l'url.

le problème se trouve forcément sur tes deux pages "modifier" et "supprimer".
Istrella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 22h50   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par Nag_Champa
Pour situer : index.php?id_page=45 est ma page "Liste_membres.php" insérée par un include dans la base de donnée.
Que veux-tu dire ? Le code php de ta page est en bdd, ou uniquement son url ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 01h44   #4
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par vg33
Que veux-tu dire ? Le code php de ta page est en bdd, ou uniquement son url ?
j'ai stocké uniquement l'adresse physique de la page inclue sur le serveur.
Nag_Champa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 01h57   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Istrella
Dans ton code, tu ne fais que créer un lien vers une page ou tu vas traiter les infos que tu transmets via l'url.

le problème se trouve forcément sur tes deux pages "modifier" et "supprimer".
ma page Modif_membres.php :
Code :
1
2
3
4
5
6
7
<?php
$_SESSION['pseudo_membre'] = $_GET['pseudo'];
$requete = mysql_query("SELECT * FROM membres WHERE `pseudo`='$pseudo_get'"); 
$var = mysql_fetch_array ($requete);
	$id = $var['id'];
	$pseudo = $var['pseudo']; 
..
Ce code fonctionne bien lorsque je n'insère pas les adresses des pages dans la bdd
Et pour le lien supprimer, c'est en fait l'équivalent de ceci :
Code :
<td><a href="liste_membre.php?supprimer=<?php echo $id; ?>">Supprimer</a></td>
Nag_Champa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 03h09   #6
Membre du Club
 
Inscription : décembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 101
Points : 45
Points : 45
Citation:
Envoyé par Nag_Champa
Et pour le lien supprimer, c'est en fait l'équivalent de ceci :
Code :
<td><a href="liste_membre.php?supprimer=<?php echo $id; ?>">Supprimer</a></td>
Ce n'est pas équivalent, car dans le premier cas, tu transmets les paramètres à "index.php", et dans le cas ci-dessus, à "liste_membre.php". Forcément, "index.php" ne saura pas traiter ta variable "supprimer", à moins de mettre ton script (ou l'appeler) dans "index.php"

Eventuellement, sur ta page index.php, tu peux mettre un include de Modif_membres.php et de liste_membre.php et faire un truc du genre :

Code php :
1
2
3
4
 
if($_ENV['id_page'] == 45) {
tafonctionsupression($_GET['supprimer']);
}

Mais ton index.php risque de vite ressembler à un code hyper lourd si tu fais ça pour chaque truc.

Sinon, il y a une solution que j'aime bien c'est faire passer les variables à ton script php via une instance XMLHttpRequest. Et en plus c'est convivial et ça ne surcharge pas ton code (juste besoin d'un include dans index.php).

Il y a un tuto là, dont tu peux t'inspirer : http://nicolaspied.developpez.com/ajax-premiers-pas/

Comme dis, j'essaie de t'aider mais je ne scripte pas depuis très longtemps non plus, donc d'autres seront peut-être de meilleur conseil.
Istrella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 15h43   #7
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
Merci de m'aider
En ce qui concerne le tuto ajax, pour l'instant je préfèrerai mieux comprendre php avant de m'y lancer.
Bon, cette fois-ci je m'y suis pris autrement, pour supprimer un membre.
<td><a href="index.php?id_page=47?id=<?php echo "$id"; ?>">Supprimer</a></td>
dans cette page 47 :
Code :
1
2
3
4
5
<?php
$id=$_GET['id'];
$id="DELETE FROM membres WHERE id='$id'";
mysql_query($id) or die(mysql_error());?>
<strong>Membre supprimé !</strong>
et là l'erreur retournée lorsque que je teste la page : Notice: Undefined index: id in C:\admin\supprimer.php on line 2
Membre supprimé !

Istrella tu me conseilles de mettre une fonction dans l'index, mais en fait je ne comprends pas bien.. désolé
Nag_Champa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 16h14   #8
Membre du Club
 
Inscription : décembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 101
Points : 45
Points : 45
C'est quoi le code du fichier "supprimer.php" ?
Istrella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 16h27   #9
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
Je vais récapituler ce sera plus simple :
voici ma page liste_membres.php insérée dans le contenu de la page 45 en bdd (d'apres le tuto "conception d'un site dynamique par Pierre-Baptiste Naigeon):
Code :
1
2
3
4
5
6
7
8
<?php
$recherche = mysql_query ("SELECT * FROM membre ORDER BY id");
while ($var = mysql_fetch_array ($recherche))	 
{	$id = $var['id'];
	$pseudo = $var['pseudo']; ?>
<td>Pseudo: <?php echo $pseudo; ?></td>
<td><a href="index.php?id_page=46?pseudo=<?php echo $pseudo; ?>">Modifier</a></td>
<td><a href="index.php?id_page=47?supprimer=<?php echo $id; ?>">Supprimer</a></td>
et voici ma page supprimer.php insérée dans le contenu de la page 47 en bdd:
Code :
1
2
3
4
5
<?php
$id=$_GET['id'];
$id="DELETE FROM membre WHERE id='$id'";
mysql_query($id) or die(mysql_error());?>
<strong>Membre supprimé !</strong>
Et l'erreur lorsque je teste la suppression d'un membre :
" Notice: Undefined index: id in C:\admin\supprimer.php on line 2
Membre supprimé !
"
Nag_Champa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 16h47   #10
Membre du Club
 
Inscription : décembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 101
Points : 45
Points : 45
Tu veux dire que ce code
Code PHP :
1
2
3
4
5
6
 
<?php
$id=$_GET['id'];
$id="DELETE FROM membre WHERE id='$id'";
mysql_query($id) or die(mysql_error());?>
<strong>Membre supprimé !</strong

est inséré dans le contenu de ta base de donnée ?

A priori, $_GET['id'] n'existe pas selon le message d'erreur.

Ce que je te proposais plus haut c'est que si tu as suivi le tuto, tu devrais avoir ça dans ta page index.php :

Code :
1
2
3
4
5
6
 
<div id="contenu">
<?php
// Affiche le contenu de la page en cours
echo $_ENV['contenu'];
?>
et moi je te proposais de faire ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<div id="contenu">
<?php
include_once 'supprimer.php';
 
if($_ENV['id_page'] == 47) {
supprime_membre($_GET['id']);
}
else {
// Affiche le contenu de la page en cours
echo $_ENV['contenu'];
}
?>
Et dans 'supprimer.php' :

Code :
1
2
3
4
5
6
 
supprime_membre($id){
$strSQL="DELETE FROM membre WHERE id=".$id;
mysql_query($strSQL) or die(mysql_error());
echo "<strong>Membre supprimé !</strong>";
}
là ça devrait marcher. A adapter bien sûr.

Et comme dis, ça risque de faire une sacrée page index.php à la longue...
Istrella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 17h11   #11
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
en adaptant ton code ma page index.php devient :
Code :
1
2
3
4
5
6
7
8
<div id="contenu"><?php
			if($_ENV['id_page'] == 47) {
			supprime_membre($_GET['id']);
			}
			else {
			// Affiche le contenu de la page en cours
			echo include($_ENV['contenu']);
			}?>
Dans ma bdd j'insere le chemin dans le champs "contenu" : admin/supprimer.php

je garde ton code pour ma page supprimer.php, et voici l'erreur retournée :
Fatal error: Call to undefined function supprime_membre() in C:\index.php on line 71
Nag_Champa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 18h31   #12
Membre du Club
 
Inscription : décembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 101
Points : 45
Points : 45
tu as du oublier

Code php :
include_once 'supprimer.php';

dans ton index.php (à savoir que dans ce cas précis, le fichier supprimer.php doit se trouver dans le même répertoire que ton index.php).

Ou bien tu n'as pas la fonction 'supprime_membre()' dans ton fichier supprimer.php

Code php :
1
2
3
4
5
supprime_membre($id){
$strSQL="DELETE FROM membre WHERE id=".$id;
mysql_query($strSQL) or die(mysql_error());
echo "<strong>Membre supprimé !</strong>";
}
Istrella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 19h33   #13
Invité de passage
 
Inscription : octobre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Istrella
tu as du oublier
Code php :
include_once 'supprimer.php';
Je ne l'ai pas oublié. " Dans ma bdd j'insere le chemin dans le champs "contenu" : admin/supprimer.php "
J'ai essayé "include_once 'supprimer.php';" en enlevant le chemin dans "contenu", mais le résultat est le meme, la meme erreur.

Citation:
Envoyé par Istrella
Ou bien tu n'as pas la fonction 'supprime_membre()' dans ton fichier supprimer.php
"je garde ton code pour ma page supprimer.php" => le fichier supprimer.php contient bien la fonction
Nag_Champa 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 +2. Il est actuellement 17h39.


 
 
 
 
Partenaires

Hébergement Web