Problème suppresion mysql php
glodybiss
Messages postés
509
Statut
Membre
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
J'ai un problème avec mon script de suppression des données dans ma base des données, il supprime directement l'entrée sans passé le bouton supprimer, c'est à dire que quand j'ouvre la page le script supprime directement le contact sélectionné de ma base des données sans que je clique sur le bouton supprimer.
Voici le script.
J'ai un problème avec mon script de suppression des données dans ma base des données, il supprime directement l'entrée sans passé le bouton supprimer, c'est à dire que quand j'ouvre la page le script supprime directement le contact sélectionné de ma base des données sans que je clique sur le bouton supprimer.
Voici le script.
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "madatabase" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
?>
<script language="javascript">
function confirme( identifiant )
{
var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement ?" ) ;
if( confirmation )
{
document.location.href = "accueil.php"
}
}
</script>
<?php
$id = intval($_GET['u']);
$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)
{
echo("La suppression à été correctement effectuée") ;
}
else
{
echo("La suppression à échouée") ;
}
//exécution de la requête:
$requete = mysql_query( $sql) ;
//affichage des données:
$result = mysql_fetch_object( $requete );
{
echo("<a href=\"#\" onClick=\"confirme('".$result->id."')\" >supprimer</a>") ;
}
?>
A voir également:
- Problème suppresion mysql php
- Easy php - Télécharger - Divers Web & Internet
- Mysql community download - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php ✓ - Forum PHP
- Retour à la ligne php ✓ - Forum PHP
5 réponses
Salut,
C'est tout à fait logique que cela supprime ta ligne,
Ce code :
Exécute la requête dès que tu arrives sur la page ( car tu n'a pas de condition : isset par exemple )
Donc à ta place je lancerai la requête SQL une fois que le bouton supprimé est cliqué :
C'est tout à fait logique que cela supprime ta ligne,
Ce code :
$id = intval($_GET['u']);
$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)
{
echo("La suppression à été correctement effectuée") ;
}
else
{
echo("La suppression à échouée") ;
}
Exécute la requête dès que tu arrives sur la page ( car tu n'a pas de condition : isset par exemple )
Donc à ta place je lancerai la requête SQL une fois que le bouton supprimé est cliqué :
if(isset($_POST['mon_bouton_supprimer'])){ // lorsque le bouton est cliqué on fait...
// construction et execution de ma requete
qqs remarques:
fichier delete.php
<?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") ;
}
else
{
echo("La suppression à échouée") ;
}
} //exécution de la requête:
?>
<!-- Et voici le lien sur ma page -->
<a href="delete.php?supprimer=<?php echo $id; ?>">Supprimer</a>
Merci !!! Cette fois-ci il affiche le message de suppression sans supprimer l'id sélectionnée
et quand j'essaie de revenir sur ma page il renvois un message d'erreur en comme ceci :
Et voici ma ligne 14
Le (u) me permet de récupéré l'id de chaque agent dans le lien.
Voilà comment j'ai construis le lien
La suppression à été correctement effectuée
et quand j'essaie de revenir sur ma page il renvois un message d'erreur en comme ceci :
Notice: Undefined index: u in C:\wamp\www\internetservices\detailles_agents.php on line 14
Et voici ma ligne 14
$sql = 'SELECT 'id', 'nom', 'prenom', 'matricule', 'privilege', 'date', 'email', 'telephone', 'fonction_tech', 'update_date', 'intervention' FROM 'agent' WHERE id='.intval($_GET['u']).'';$
Le (u) me permet de récupéré l'id de chaque agent dans le lien.
Voilà comment j'ai construis le lien
<a href="accueil.php?view=23&u='.$row['id'].'">'.$row['nom'].'</a>
Cette fois-ci il affiche le message de suppression sans supprimer l'id sélectionnée
c'est à dire ?
as tu vérifié dans ta BDD si la ligne correspondant à cet id a effectivement été supprimée ?
et quand j'essaie de revenir sur ma page ...
tu revient comment , par le bouton précédent du navigateur ?
as tu un bouton retour vers accueil dans la page delete.php après la suppression ?
c'est à dire ?
as tu vérifié dans ta BDD si la ligne correspondant à cet id a effectivement été supprimée ?
et quand j'essaie de revenir sur ma page ...
tu revient comment , par le bouton précédent du navigateur ?
as tu un bouton retour vers accueil dans la page delete.php après la suppression ?
non le bouton précédent du navigateur te "ressert" la page telle qu'elle était avant la suppression. (cache)
donc avec l'id que tu viens de supprimer y est encore, d'où l'erreur
pareil pour voir dans ta BDD, dans phpmyadmin, est ce que après la suppression, tu cliques bien sur afficher ?
est ce que si tu appelles la page accueil directement il y est toujours ?
désolé pour toutes ces questions qui peuvent te paraitre évidentes peut être.
donc avec l'id que tu viens de supprimer y est encore, d'où l'erreur
pareil pour voir dans ta BDD, dans phpmyadmin, est ce que après la suppression, tu cliques bien sur afficher ?
est ce que si tu appelles la page accueil directement il y est toujours ?
désolé pour toutes ces questions qui peuvent te paraitre évidentes peut être.
Ne t'en fais pas pour les questions c'est plutôt moi qui suis désolé.
J'ai créer le bouton de retour mais il est toujours présent, de même dans ma base des données, j'actualise et même quand je clique sur afficher il y est toujours.
Voici le lien qui apparait sur ma barre d'adresse quand je clique sur supprimer :
Le 23 correspond à l'id de la page
Or l'id d'un agent correspond à ce url
d'où la suppression devais être comme ceci n'est-ce pas ?
J'ai créer le bouton de retour mais il est toujours présent, de même dans ma base des données, j'actualise et même quand je clique sur afficher il y est toujours.
Voici le lien qui apparait sur ma barre d'adresse quand je clique sur supprimer :
delete.php?supprimer=23
Le 23 correspond à l'id de la page
Or l'id d'un agent correspond à ce url
23&u=3
d'où la suppression devais être comme ceci n'est-ce pas ?
delete.php?supprimer=23&u=id
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
delete.php?supprimer=23&u=id
non le numero de l'id a supprimer est 23, donc contenu dans supprimer
donc dans l'url il suffit d'avoir
et dans delete.php récupéres l'id par $_GET['supprimer']
comme fait dans mon post plus haut:
non le numero de l'id a supprimer est 23, donc contenu dans supprimer
donc dans l'url il suffit d'avoir
delete.php?supprimer=23
et dans delete.php récupéres l'id par $_GET['supprimer']
comme fait dans mon post plus haut:
if(isset($_GET['supprimer']) && $_GET['supprimer']!= "" ){
$id=mysql_real_escape_string( $_GET['supprimer']);
Détaille un peu ;)
Voici la ligne 48
echo("<a href=\"#\" name="" onClick=\"confirme('".$result->id."')\" >supprimer</a>") ;Voilà ce que j'ai ajouté ce que vous m'avez montré.
$id = intval($_GET['u']); if(isset($_POST['supprimer']))// ce j'ai ajouté { $sql = "DELETE FROM membre 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) { echo("La suppression à été correctement effectuée") ; } else { echo("La suppression à échouée") ; } }