Php et mysql

Résolu/Fermé
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 - Modifié par jordane45 le 24/11/2014 à 10:54
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 - 25 nov. 2014 à 16:51
Bonjour,
j'ai vraiment des serieux problemes avec ma suppression qui qlq'un pourrai vraiment m'aider

<?php 



 $res = $connexion->prepare("delete from mat
      ");
      
 if($res === 1)
  
  echo"Erreur lors de la suppression";
 else
  echo "Suppression effectueée avec succès";
  ?>


c'est urgent



10 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
24 nov. 2014 à 10:56
Salut,

Il faut appeler la méthode execute de PDO après un prepare.

Bonne journée
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
24 nov. 2014 à 10:56
Bonjour,

J'ai édité ton message pour y ajouter les balilses de code.
Merci d'y penser la prochaine fois.


j'ai vraiment des serieux problemes avec ma suppression

Et quels problèmes ??

As tu testé ta requête directement dans ta BDD ?? .. elle fonctionne ??

As tu des messages d'erreurs ?

TU fais un "prepare" .. mais où fais tu l'execution de la requête ?
Tu utilises PDO ou Mysqli ?

.. que de questions....


PS : l'urgence ne concerne que toi.. nul besoin de le préciser.. ça ne fera pas répondre plus vite !

0
Bonjour

1 - Tu es bien conscient que comme il n'y a aucun WHERE, cette requête va effacer toute ta table ? Si c'est vraiment ce que tu veux faire, il vaut mieux utiliser TRUNCATE.

2- C'est bien de préparer une requête, mais tu ne l'exécutes pas !
Il faut ajouter
$res1=$res->execute();
Et tester si $res1 vaut true ou false;
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
Modifié par jordane45 le 25/11/2014 à 09:34
bonjour,
je vous remercie pour le conseil et actuellement sava un peu mais le souci est que en voulant supprime une ligne il te faut renseine le numero de la ligne sans quoi ça marche pas du tout; puisque dans la condition je voulais mettre where numuser='$numuser' mais sava pas:

c'est ce qui marche
<?php 
include'/config/connexion.php';


 $res =$connexion->prepare("delete from user
     where numuser ='6'");
  $res->bindParam (1,$numuser, PDO::PARAM_INT);
  $res->bindParam (2,$nomuser, PDO::PARAM_STR);
$res->bindParam (3,$poste, PDO::PARAM_STR);
$res->bindParam (4,$nomdept, PDO::PARAM_INT);
  $res1=$res->execute();
      
 if($res1!== false){
  echo "Suppression effectueée avec succès";
  }
  else
  {
  echo"Erreur lors de la suppression";
 }
?>



EDIT : Ajout des balises de code (jordane)
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 09:17
Et en quoi ça ne marche pas lorsque tu utilises $numuser ?
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
Modifié par Zedrof le 25/11/2014 à 09:25
si s'utilise ça m'affiche suppression effectué avec succès mais la ligne ne sera pas supprime dans la base et ce message Notice: Undefined variable: numuser in C:\wamp\www\Parc_informatique\modules\user\suppression.php on line 6
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 09:36
Déjà.. je ne vois pas à quoi servent tes BindParam dans cette requête
 $res->bindParam (1,$numuser, PDO::PARAM_INT);
 $res->bindParam (2,$nomuser, PDO::PARAM_STR);
$res->bindParam (3,$poste, PDO::PARAM_STR);
$res->bindParam (4,$nomdept, PDO::PARAM_INT);


Ensuite... Montre nous comment tu t'y prends lorsque tu utilise $numuser ....

Et aussi... à quel moment de ton code... tu initialise la valeur de $numuser...
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
Modifié par jordane45 le 25/11/2014 à 09:37
PS :
 if($res1!== false){
revient tout simplement à faire
if($res1){
...ça suffit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
Modifié par jordane45 le 25/11/2014 à 10:20
Oui j viens de l'initialise mais c'est encore sans succès:
<?php 
include'/config/connexion.php';

$numuser = $_POST['numuser'];
 $res =$connexion->prepare("delete from user
     where numuser ='$numuser' ");
  
  $res1=$res->execute();
      
 if($res1){
  echo "Suppression effectueée avec succès";
  }
  else
  {
  echo"Erreur lors de la suppression";
 }
?>


EDIT : Ajout des balises de code.... encore.... (jordane)
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 10:25
1 - J'ai édité ton message pour ajouter la coloration syntaxique (les balises de code) => Première icone en partant de la droite.. en haut dans la fenêtre de saisie des messages...

2 - As tu vérifié si ta variable POST contenait quelque chose ?

Tu peux essayer ça stp et me dire ce que ça donne ?

<?php 
include'/config/connexion.php';
//On récupère le contenu de notre variable passée en POST
// -> Ecriture TERNAIRE pour faire un IF
$numuser =isset( $_POST['numuser'])? $_POST['numuser']:NULL;

if($numuser ){
// On sépare la requête des instructions pour pouvoir en faire un ECHO si besoin
$sql = "DELETE from user
             WHERE numuser ='$numuser' ";

//On prépare la requête
 $res =$connexion->prepare($sql);

//On exécute la requête  
 $res1=$res->execute();
      
 if($res1){
  echo "Suppression effectueée avec succès";
 } else {
    echo"Erreur lors de la suppression <br> La requête est:<br>".$sql;
 }
}else{
  echo "<br> Erreur ! numuser  n'est pas renseigné !!";
}
?>




0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
25 nov. 2014 à 10:29
Erreur ! numuser n'est pas renseigné !!
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 10:33
Ben donc c'est clair...
Tu ne lui envoie pas en POST .....
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
25 nov. 2014 à 11:51
A defaut de POST j'utilise GET mais sans succès
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 12:42
Commment envoies tu tes données dans cette page ?
Quel code PHP / HTML utilises tu ??

Si tu faits un
print_r($_POST); 

qu'est ce que ça t'affiche ??
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
Modifié par jordane45 le 25/11/2014 à 14:21
jenvoie les donnes sur la page par à mon code index.php
 <?php
 
 $req="select  * from user ";
 
 $requete=$connexion->prepare($req);
 
 $requete->execute();
 
 
 ?>
 <h2 align='center'><strong> Liste des utilisateurs </strong></h2>
 <span id="add">
 <a href="index.php?page=modules/user/new.php"><strong> Ajouter un utilisateur </strong></a>
 </span><br/><br/>
 <table class="liste"> 
  <tr>
   <th>Numero user</th>
   <th>Nom user</th>
   <th>Poste</th>
   <th>Numero departement</th>
   <th>Action</th>
  
  </tr>
  
  <?php
  while ($ligne=$requete->fetch(PDO::FETCH_OBJ)){
  ?>
  <tr>
  
  <td ><?php echo $ligne->numuser?></td>
  <td ><?php echo $ligne->nomuser?></td>
  <td ><?php echo $ligne->poste?></td>
  <td ><?php echo $ligne->nomdept?></td>
  
  <td> 
  <a href="index.php?page=modules/user/view.php&id=<?php echo $ligne->numuser?>">
  
  <img src="web/images/consulter.png" width="" height="">
  
  </a>
  
  <a href="index.php?page=modules/user/edit.php&id=<?php echo $ligne->numuser?>">
  
   <img src="web/images/modifier.png" width="" height="">
  </a> 
  
  <a href="index.php?page=modules/user/suppression.php&id=<?php echo $ligne->numuser?>">
  <span onclick="if(confirm('voulez vous supprimer cet utulisateur ?')) mettreAjourDiv('modules/user/suppression.php','corps', '<?php echo $ligne->numuser ?>')">
  <img src="web/images/supprimer.png" width="" height="" title="">
  
  </span>
  </a>
  
  </td>
  </tr>
   
  <?php
  }
  ?>

</table>


EDIT : Ajout des balises de code.
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 14:22
Ton souci vient de là :

id=<?php echo $ligne->numuser


Dans ton script PHP tu essayes de récupérer $numuser .... alors que toi.. tu lui envoies comme variable : $id ....
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
Modifié par jordane45 le 25/11/2014 à 15:44
j'ai le id mais ça me donne erreur
<?php echo $ligne->numuser


EDIT : Ajout des balises de code !!!
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
Modifié par jordane45 le 25/11/2014 à 15:43
j'ai le id mais ça me donne erreur

Tu as le id ...où ??
Ca te donne une erreur .... où ? laquelle ??
==>>> Il faut que tu sois plus précis dans tes explications !!

Dans le code de ta page php (celle qui va faire les suppressions dans ta BDD)..
tu remplaces la ligne :
<?php 
$numuser =isset( $_POST['numuser'])? $_POST['numuser']:NULL;


Par :
<?php 
$numuser =isset( $_POST['id'])? $_POST['id']:NULL;



PS : Dernier rappel au sujet des balises de code !
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
25 nov. 2014 à 15:58
ça donne erreur

( ! ) Notice: Undefined variable: numdept in C:\wamp\www\Parc_informatique\modules\user\suppression.php on line 7
Call Stack
# Time Memory Function Location
1 0.0020 368688 {main}( ) ..\index.php:0
2 0.0162 386032 include( 'C:\wamp\www\Parc_informatique\modules\user\suppression.php' ) ..\index.php:35




Erreur ! numdept n'est pas renseigner !!
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
25 nov. 2014 à 16:07
Tu as quoi dans ton fichier suppression.php ??
Montres ton code.
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
25 nov. 2014 à 16:11
voici mon fichier suppression.php

<?php
include'/config/connexion.php';
//On récupère le contenu de notre variable passée en POST
// -> Ecriture TERNAIRE pour faire un IF
$numuser =isset( $_POST['id'])? $_POST['id']:NULL;

if($numdept){
// On sépare la requête des instructions pour pouvoir en faire un ECHO si besoin
$sql = ("DELETE from departement
WHERE numdept ='$numdept' ");

//On prépare la requête
$res =$connexion->prepare($sql);

//On exécute la requête
$res1=$res->execute();

if($res1){
echo "Suppression effectueée avec succès";
} else {
echo"Erreur lors de la suppression <br> La requête est:<br>".$sql;
}
}else{
echo "<br> Erreur ! numdept n'est pas renseigner !!";
}
?>
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
25 nov. 2014 à 16:18
Tu te moques de moi ou quoi ??????????
OU SONT LES BALISES DE CODE !!!!!!!!!!!!!!!!!!!!!!!!!!


Pour ce qui est de ton souci...
D'où vient cette "nouvelle variable..." .. $numdept .. à la ligne 7 ???
$numuser =isset( $_POST['id'])? $_POST['id']:NULL;

if($numdept){ 


C'est $numuser qu'il faut écrire...
$numuser =isset( $_POST['id'])? $_POST['id']:NULL;

if($numuser ){ 
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 16:34
Tu appelles bien ta page depuis ce code ?
  <a href="index.php?page=modules/user/suppression.php&id=<?php echo $ligne->numuser?>">
  <span onclick="if(confirm('voulez vous supprimer cet utulisateur ?')) mettreAjourDiv('modules/user/suppression.php','corps', '<?php echo $ligne->numuser ?>')">
  <img src="web/images/supprimer.png" width="" height="" title="">
  
  </span>
  </a>



Deux questions :
- Que contient l'URL lorsque tu es sur la page de suppression ( là où il te dit que numuser n'existe pas...) ?

- Que contient (et que fait) ta fonction mettreAjourDiv() ?


Et aussi... en relisant.. je pense que c'est du GET que tu utilises et non du POST..
donc code à modifier en :

$numuser =isset( $_GET['id'])? $_GET['id']:NULL;


0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1
25 nov. 2014 à 16:39
Vraiment avec GET ca marche


merci mille fois jordane45
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
25 nov. 2014 à 16:40
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0
Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022 1 > jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024
25 nov. 2014 à 16:50
Merci jordane45... je découvre php et c'est cool. je marque ce sujet comme résolu et j'en crée un nouveau
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > Zedrof Messages postés 156 Date d'inscription mercredi 27 août 2014 Statut Membre Dernière intervention 9 juin 2022
25 nov. 2014 à 16:51
Encore ?? ... tu ne t'arrête jamais .. :-p
0