Php et mysql

Résolu
Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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



A voir également:

10 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

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

Bonne journée
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   1
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Et en quoi ça ne marche pas lorsque tu utilises $numuser ?
0
Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1
 
Erreur ! numuser n'est pas renseigné !!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Ben donc c'est clair...
Tu ne lui envoie pas en POST .....
0
Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
A defaut de POST j'utilise GET mais sans succès
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1
 
j'ai le id mais ça me donne erreur
<?php echo $ligne->numuser


EDIT : Ajout des balises de code !!!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
ç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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention  
 
Tu as quoi dans ton fichier suppression.php ??
Montres ton code.
0
Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1
 
Vraiment avec GET ca marche


merci mille fois jordane45
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Zedrof Messages postés 156 Date d'inscription   Statut Membre Dernière intervention  
 
Encore ?? ... tu ne t'arrête jamais .. :-p
0