Problème de suppression en php

Résolu/Fermé
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017 - Modifié le 9 mai 2017 à 20:08
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017 - 10 mai 2017 à 09:11
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

3 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
9 mai 2017 à 10:51
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.
0
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017
9 mai 2017 à 11:00
Tout d'abord merci de ta réponse. PhpMyAdmin est installé cependant la requête ne doit pas être exécuter dessus. Je travaille mes fichiers sur Notepad+. Je viens également d'entrer le code que tu as affiché dans PhpMyAdmin et me dit qu'il y a une erreur de syntaxe ligne 2.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017
Modifié le 9 mai 2017 à 11:19
D'accord, l'id est bien défini ?

Car tu as écrit :
$id=$_REQUEST[id];


Ce n'est pas plutôt :
$id=$_REQUEST['id'];


Je ferai même :
$id = (int) $_REQUEST['id'];
0
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017 > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
9 mai 2017 à 11:23
Je viens de tester les lignes que tu m'as recommandé et le problème est toujours le même malheureusement.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11 > EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017
Modifié le 9 mai 2017 à 11:42
Tu peux me montrer l'erreur de phpmyadmin ?
0
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017 > Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017
9 mai 2017 à 11:45
Il m'affiche: Erreur

requête SQL:

$id = $_REQUEST[id];

MySQL a répondu:Documentation
#1064 - Erreur de syntaxe près de '$id=$_REQUEST[id]' à la ligne 1
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 544
9 mai 2017 à 17:37
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,
0
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017
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.
0
jordane45 Messages postés 36614 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 décembre 2022 4 422
Modifié le 9 mai 2017 à 20:16
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                                                                 
0
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017
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é.
0
EleveSIG Messages postés 12 Date d'inscription mardi 9 mai 2017 Statut Membre Dernière intervention 10 mai 2017
10 mai 2017 à 09:09
Je te remercie ça fonctionne ! Un grand merci !
0