Signaler

Problème de suppression en php [Résolu]

Posez votre question EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention - Dernière réponse le 10 mai 2017 à 09:11 par EleveSIG
Bonjour, je suis élève en Terminale STMG et l'option que j'ai choisi étant l'informatique, je dois préparer un projet qui sera noté pour le Bac. L'objectif de ce projet est de créer un site (en local) pour le club de foot du lycée contenant les coordonnées de chaque joueurs dans la base de données. Nous devons ensuite être en mesure de pouvoir modifier les coordonnées des joueurs, ajouter ou supprimer des joueurs, ainsi qu'afficher la liste des joueurs enregistrés. Seulement voilà nous avons réussi à afficher une liste, mettre au point une interface, ajouter des joueurs (grâce à une aide précédemment reçu à l'aide d'un forum) mais nous n'arrivons pas à exécuter la suppression. Voilà ce qu'il se passe, lorsque je lance le site et tente de supprimer un joueur de la base en entrant son id, le site me redirige vers la liste des joueurs sans avoir procédé à la suppression. J'ai déjà plusieurs fois tenté de modifié le codage... sans succès. En ce qui me concerne, il me semble que le problème vienne de la requête mais je n'en suis pas sûr. Avant de montrer le codage, sachez que le fichier de suppression est divisé en 2, l'un pour l'affichage de la liste et la sélection du joueur à supprimer, l'autre pour l’exécution de la requête. Le fichier posant problème est celui de la requête. Je précise également que je travaille sous EasyPhp 5.3.0 et que je ne peux ABSOLUMENT pas changer de version. Voici le codage:
// connexion au serveur MySQL
$link = mysqli_connect('localhost','root','')
or die('echec de la connexion');

//selection de la base de donnee joueur
$database='footclub';
$table='joueur';
$sel = mysqli_select_db($database, $link);

//recuperation des valeurs du formulaire
$id=$_REQUEST[id];

//?criture de la requete de suppression
$requete="DELETE FROM `joueur` WHERE id=".$id;

//Execution de la requete
mysqli_query($requete,$link);
 
//Redirection vers listejoueur
header("Location:listejoueur.php");
?>


Merci d'avance pour votre aide.

EDIT : Correction des balises de code

Afficher la suite 
Utile
+0
plus moins
Tu as phpmyadmin installé ?

Essai d’exécuter ta requête dessus pour savoir ce qu'il retourne comme erreur…

Donc ton code :
//recuperation des valeurs du formulaire
$id=$_REQUEST[id];

//?criture de la requete de suppression
$requete="DELETE FROM `joueur` WHERE id=".$id;

exit($requete);


Le résultat qui apparait à l'écran est ce que tu dois exécuter dans phpmyadmin.
Felice_ 255Messages postés mardi 25 avril 2017Date d'inscription 28 juin 2017 Dernière intervention - 9 mai 2017 à 12:55
Je me demande si tu copies bien le retour de ton navigateur ou ton code PHP ?

Car, ce qu'il faut vérifier c'est ce qui s'affiche dans le navigateur.

Le code SQL formaté.
Répondre
EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention - 9 mai 2017 à 17:24
Re, ce que je copies c'est la requête dans phpmyadmin mais peut-être que j'ai mal compris ce que tu me demandais ^^'. Le retour de mon navigateur c'est la redirection vers la liste des joueurs. Par contre je t'avoue que je ne vois pas bien de quoi tu parles lorsque tu cite "Le code SQL formaté".
Répondre
Felice_ 255Messages postés mardi 25 avril 2017Date d'inscription 28 juin 2017 Dernière intervention - 9 mai 2017 à 20:04
Regarde le code que j'ai mis plus haut, il retourne une instruction :
exit($requete);


Ça permet de mettre fin aux instructions suivante et de voir le message passer en paramètre…

Ici la requête SQL.

C'est ceci qu'il faut coller dans phpmyadmin pour voir si une erreur survient.
Répondre
EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention - 10 mai 2017 à 00:23
D'accord, je regarderai mercredi je n'ai pas de quoi le faire là tout de suite.
Répondre
EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention Felice_ - 10 mai 2017 à 09:11
C'est bon ça fonctionne, jordane45 m'a envoyé un autre codage qui fonctionne. Merci du coup de main.
Répondre
Donnez votre avis
Utile
+0
plus moins
Salut,

La variable $_REQUEST['id'] possède t-elle bien la valeur attendue lorsque ton script est exécuté ?

Comment est transmis ce paramètre (GET ou POST) id à ce script ?
Peux tu nous montrer le code de l'affichage de la liste des joueurs avec la sélection du joueur à supprimer ? Le problème peut venir de là.

Bonne journée,
EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention - 9 mai 2017 à 18:06
Salut,

Je précise qu'avant ce projet je n'ai jamais codé de ma vie donc j'aurais sûrement un peu de mal à te répondre. Il me semble que le paramètre est transmis via POST. Concernant la valeur attendue, je suis censé devoir tapé l'id sur le site pour pouvoir supprimer le joueur. Et je peux confirmer que le problème ne vient pas de la liste si tu le souhaite je peux t'envoyer par mail les fichiers en questions pour que tu y jette un oeil.

Merci de ta réponse.
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Avec mysqli on évite les OR DIE ...

De plus tu fais ta redirection que tu aies des erreurs ou non....

Bref...
Essaye ça et dis moi ce que ça donne :
<?php

/*-----------------------------------------*/
//Activation de l'affichage des erreurs php
/*-----------------------------------------*/
error_reporting(E_ALL);
ini_set('display-errors','on');

/*-----------------------------------------*/
//connexion à la bdd
/*-----------------------------------------*/
$database='footclub';
$table='joueur';
$user = "root";
$password = "";

$con=mysqli_connect("localhost",$user,$password,$database);
// Check connection
if (mysqli_connect_errno()) {
  echo "Echec de la connexion : " . mysqli_connect_error();
}


/*---------------------------------------------------------*/
// Récupération PROPRE des variables AVANT de les utiliser
/*---------------------------------------------------------*/
$id = !empty($_REQUEST['id']) ? $_REQUEST['id'] : NULL; // 


/*-----------------------------------------*/
// Requete de supprression :
/*-----------------------------------------*/
$sql = "DELETE FROM $table WHERE id='$id'";
if (!mysqli_query($con,$sql)) {
  // si pb dans la requete
  echo("Error dans la requete: ". $sql . " Erreur :" . mysqli_error($con));
}else{
  //Redirection vers listejoueur
  header("Location:listejoueur.php");
  exit();
}

mysqli_close($con);
?> 



Cordialement, 
Jordane                                                                 
EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention - 10 mai 2017 à 00:26
D'accord et merci d'avoir répondu j'essaierai demain matin et t'informerai si ta solution a marché.
Répondre
EleveSIG 12Messages postés mardi 9 mai 2017Date d'inscription 10 mai 2017 Dernière intervention - 10 mai 2017 à 09:09
Je te remercie ça fonctionne ! Un grand merci !
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !