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 05/01/2012, 08h52   #1
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Par défaut Suppression mysql php

Bonjour à tous !

J'aimerai suppression un utilisateur existant dans ma base des données, j'ai bien construit mon code tout fonctionne et il n'y a aucune erreur qui s'affiche alors quand je clique sur bouton de suppression je reçoit quand même le message confirment que l'utilisateur à été supprimer mais quand je vérifie dans ma base des données celui-ci y est toujours pourtant la requête arrive quand même jusqu'à ma base des données.

Votre assistance s'il vous plait.

Voici mes codes :

fichier delete.php

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
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "mabase" ) ;
?>
 
  <?php
  //un lien n'envoie pas en POST mais en GET, et pas de name ?
  if(isset($_GET['supprimer']) && $_GET['supprimer']!= "" ){
        $id=mysql_real_escape_string( $_GET['supprimer']); //sécurité !!
        $sql = "DELETE FROM `agent` WHERE id = ".$id;
        //exécution de la requête:
        $result = mysql_query( $sql) ;
        //affichage des résultats, pour savoir si la suppression a marchée:
        //if($requete)   ==> d'ou sort ce $requette ?
        if($result)
        {
                echo("La suppression à été correctement effectuée") ;
                echo("</br><a href =\"accueil.php?view=4\">Cliquer pour retourner sur la pas</a>") ;
        }
        else
        {
                echo("La suppression à échouée") ;
        }
  } //exécution de la requête:
  ?>
Le lien sur ma page où se trouve l'utilisateur à supprimer

Code :
1
2
3
<div width="400px" class="right" style="margin-top:20px;">
<a href="delete.php?supprimer=<?php echo $id; ?>">Supprimer</a>
</div>
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 09h14   #2
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Bonjour,

As-tu vérifié le contenu de $id dans delete.php?supprimer=<?php echo $id; ?>?
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 09h32   #3
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Je crois l'avoir fait peut être mais dite moi s'il vous plait comment je le fais ?
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 09h45   #4
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Vérifie dans le code-source de la page affiché dans ton navigateur, ou seulement sur la barre d'état en survolant le lien "Supprimer".

Tu dois avoir delete.php?supprimer=x, où x est le resultat de <?php echo $id; ?>.

Je suis presque sûr que x est égal à 0 ! D'où ton problème de suppression.

$_GET['supprimer'] est définie mais est égale à 0.
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 10h11   #5
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 727
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 727
Points : 3 294
Points : 3 294
Citation:
Je crois l'avoir fait peut être mais dite moi s'il vous plait comment je le fais ?
Tu le fais déjà.
Vérifie au survol du lien, théoriquement ça affiche l'adresse URL du lien dans la barre des taches, quelque chose comme :
http://www.domaine.com/delete.php?su...r=valeur_du_id

Ou alors tu fais un clic droit dans la page contenant le lien, puis "code source de la page", et tu recherche le lien en question pour vérifier si cet ID à une valeur, et celle attendue.

Ou encore, lorsque tu clic sur le lien, l'URL est affichée dans la barre d'adresse du navigateur.

Mais encore, et provisoirement, tu peux t"aider en faisant ceci :
Code :
1
2
3
4
 
<div width="400px" class="right" style="margin-top:20px;">
<a href="delete.php?supprimer=<?php echo $id; ?>">Supprimer [id:<?php echo $id; ?>]</a>
</div>
Le lien doit être comme ceci :
Supprimer [id:valeur_du_id]

Et on peu en trouver d'autres pour s'aider à comprendre ce qui n'irait pas.
(echo, print_r, var_dump entre autre).


Par ailleurs, as tu activer l'affichages des erreurs Php ? (dans le php.ini -> display_errors à On)
Tu peux aussi activer les messages d'erreurs concernant MySQL : -> mysql.trace_mode à On
Ceci quand tu développe ou quand tu fais du débogage.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 10h14   #6
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
au survole de la souris
il prend l'id de la page au lieu de prendre l'id de l'utilisateur sélectionné

quand je clique sur supprimer sur la barre d'adresse j'ai ceci :
Code :
delete.php?supprimer=23
or le 23 est l'id de la page où je me trouve mais l'id de l'utilisateur correpond à ceci sur l'utilisateur sélectionné

Code :
accueil.php?view=23&u=12
c'est le 12 l'id de l'utilisateur
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 10h20   #7
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 727
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 727
Points : 3 294
Points : 3 294
Alors il doit avoir une erreur SQL.

id est peut être un nom réservé, MySQL s'apprécierait pas.
Essai de rajouter des back-quote sur ce champ id.
Exemple :
Code :
$sql = "DELETE FROM `agent` WHERE `id` = ".$id
Mais n'oublie pas d'activer les erreurs de Php et MySQL si ce n'est pas le cas, ça va aider (et aidera à l'avenir) à comprendre les erreurs.


NB : Il serait bon d'uniformiser tes noms (variables, paramètres, champs, etc ...).
Car un coup c'est id, un coup c'est u, après c'est supprimer
On pige plus grand chose.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h00   #8
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Citation:
$sql = "DELETE FROM `agent` WHERE `id` = ".$id
C'est pourtant fait mais rien ne marche, j'ai trouvé la faille mais c'est la solution que je ne sais vraiment pas trouvé, au fait l'erreur se trouve au niveau de ce lien

Code :
1
2
3
<div width="400px" class="right" style="margin-top:20px;">
<a href="delete.php?supprimer=<?php echo $id; ?>">Supprimer</a>
</div>
Il s'agit de récupéré l'id du lien sélectionné, je ne pense pas que ça correspond à ceci :

Code :
delete.php?supprimer=<?php echo $id; ?
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h10   #9
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Peux-tu poster ici le code d'initialisation de ta variable $id ?
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h27   #10
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Citation:
Peux-tu poster ici le code d'initialisation de ta variable $id ?
Je préfère te donner l'ensemble de mon code pour te permettre de comprendre ce que je veux où je suis et où je veux aller.

Celui ci est le code qui me permet d'afficher la liste des agents enregistré dans ma base des données:

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
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "mabase" ) ;
?>
<?php $query = "SELECT * FROM `agent`";
 $result = mysql_query($query);
  echo '<table width="100%">';
 
  echo'<h4>Liste agents</h4>';
 
echo '<tr>';
	echo'<th class="td_seach_titre">N&deg;</th>';
	echo'<th class="td_seach_titre">Nom</th>';
	echo '<th class="td_seach_titre">Pr&eacute;nom</th>';
	echo '<th class="td_seach_titre">Matricule</th>';
	echo '<th class="td_seach_titre"Date d\'inscription</th>';
	echo'<th class="td_seach_titre">T&eacute;l&eacute;phone</th>';
	echo'<th class="td_seach_titre">Fonction technique</th></tr>';
 
	while ($row = mysql_fetch_array($result))
{
echo'<tr>';
echo'<td class="td_seach">'.$row['id'].'</td>';
echo'<td class="td_seach"><a href="accueil.php?view=23&u='.$row['id'].'">'.$row['nom'].'</a></td>';
echo'<td class="td_seach"><a href="accueil.php?view=23&u='.$row['id'].'">'.$row['prenom'].'</a></td>';
echo'<td class="td_seach">'.$row['matricule'].'</td>';
echo '<td class="td_seach">'.$row['date'].'</td>';
echo '<td class="td_seach">'.$row['telephone'].'</td>';
echo '<td class="td_seach">'.$row['fonction_tech'].'</td>';
echo '</tr>';
	}
echo '</table>';
?>

Ici j'ai les détails de chaque agent en sélectionnant le lien de n'importe quel agent affiché sur la liste

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
$sql = 'SELECT `id`, `nom`, `prenom`, `matricule`, `privilege`, `date`, `email`, `telephone`, `fonction_tech`, `birthday`, `intervention` FROM `agent` WHERE id='.intval($_GET['u']).'';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data=mysql_fetch_assoc($req);
?>
<div id="boxAgent">
<h4>Detail de infomation de l'agent</h4>
<table>
<tr>
<td class="titre_td">Informations g&eacute;n&eacute;rales</td>
</tr>
 
 
 
<tr>
<td>Nom</td>
<td>
<?php
echo ''.$data['nom'].'';?></td></tr>
 
<tr>
<td class="fiche_td">Pr&eacute;nom</td>
 
<td class="fiche_td">
<?php echo ''.$data['prenom'].'';
    ?></td>
</tr>
 
<tr>
<td class="fiche_td">Matricule</td>
<td class="fiche_td">
<?php
echo ''.$data['matricule'].'';?></td></tr>
	<tr>
<td class="fiche_td">Type de compte utilis&eacute;</td>
<td class="fiche_td"><?php
echo ''.$data['privilege'].''; ?> </td></tr><tr>
 
<td class="fiche_td">Email</td>
<td class="fiche_td">
<?php
 
    echo ''.$data['email'].'';?> </td></tr>
 
<tr>
<td class="fiche_td">T&eacute;l&eacute;phone</td>
<td class="fiche_td">
<?php
    echo ''.$data['telephone'].'';
?>
</td>
</tr>
 
<tr>
<td class="fiche_td">Fonction</td>
<td class="fiche_td">
<?php
    echo ''.$data['fonction_tech'].'';
?>
</td>
</tr>
 
<tr>
<td class="fiche_td">Intervention</td>
<td class="fiche_td">
<?php
 
    echo ''.$data['intervention'].'';
?>
</td>
</tr>
 
</table>
 
<div width="400px" class="right" style="margin-top:20px;">
<a href="delete.php?supprimer=<?php echo $id; ?>">Supprimer</a>
</div>
 
</div>
ensuite j'ai le fichier delete.php qui me permet de supprimer

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
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "cybernet" ) ;
?>
 
  <?php
  //un lien n'envoie pas en POST mais en GET, et pas de name ?
  if(isset($_GET['supprimer']) && $_GET['supprimer']!= "" ){
  	$id=mysql_real_escape_string( $_GET['supprimer']); //sécurité !!
  $sql = "DELETE FROM `agent` WHERE `id` = ".$id;
  	//exécution de la requête:
  	$result = mysql_query( $sql) ;
  	//affichage des résultats, pour savoir si la suppression a marchée:
  	//if($requete)   ==> d'ou sort ce $requette ?
  	if($result)
  	{
  		echo("La suppression à été correctement effectuée");
  		echo("</br><a href =\"accueil.php?view=4\">Cliquer pour retourner sur la page</a>") ;
  	}
  	else
  	{
  		echo("La suppression à échouée") ;
  	}
  } //exécution de la requête:
  ?>
Et le view=.. récupère l'id de la page où vous vous trouvez dans la base des données, view=4, 4 est l'id de la page qui affiche la liste, et 23 est l'id de la page qui affiche les détails de l'agent.
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h31   #11
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Code :
delete.php?supprimer=<?php echo $data['id']; ?>
ou aussi

Code :
delete.php?supprimer=<?php echo $_GET['u']; ?>
sont des solutions car je ne trouve pas l'initialisation de ta variable $id dans ton code.
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/01/2012, 11h53   #12
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Merci beaucoup !!!!
Merci ça y est ça fonction.

Citation:
Les boutons (J'aime) et (Résolu) adorent être cliqués, donc ne les oubliez pas
C'est fait
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 12h00   #13
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Content de t'avoir aidé !
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/01/2012, 12h16   #14
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Citation:
Envoyé par hariman Voir le message
Content de t'avoir aidé !
C'est moi qui suis content et très flatter de votre disponibilité.
Merciiii !!!
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h10.


 
 
 
 
Partenaires

Hébergement Web