Requete DELETE qui s'execute pas PHP/MYSQL

ibrahim1987 Messages postés 30 Statut Membre -  
cyril1982 Messages postés 110 Statut Membre -
Bonjour,

Je suis débutant en PHP.J'essaye de faire un site de news (football) .
j'ai fait un scrypt pour effacer la news dont l 'id' est envoyé en url .Dans le fichier suppr.php , je récupere l'id' (ça fonctionne ,testé avec echo).mais au niveau de la supression , ça plante.

le scrypt me renvoi le message de confirmation de la supression de la news ,mais celle-ci est toujours dans la BD.( aucun message d'erreur n'est affiché).

Je vous remercie d'avance de votre aide .

Voici mon code:

<?php
   try
{
$connexion=new PDO('mysql:host=localhost;dbname=newsdufoot','root','');
}
catch (Exception $e)
  {
  die ('erreur:'. $e->getMessage());
  }
                 if(isset($_GET['id']))
                        {
 
    $suppr=$connexion->prepare('DELETE * FROM les_news WHERE id=?')  or 

die(print_r($connexion->errorInfo()));       
                       
             $suppr->bindParam(1, $_GET['id']);
               $suppr->execute();

          if($suppr)

                           {
                               
                            echo ('news supprimée </br>');
                             echo('<a href="opera_sur_news.php">retour</a>');                                
                              }

          elseif($suppr=0)  

                            {
                            echo(' erreur');        
                    
                             }
}

else

{ 
echo ('id inexistant');
}
        
        
 
 ?>


1 réponse

  1. cyril1982 Messages postés 110 Statut Membre 12
     
    Bonjour,

    Il semble y avoir plusieurs erreurs dans ton script :
    $suppr->execute();
    
     if($suppr)
    {
      echo ('news supprimée </br>');
      echo('<a href="opera_sur_news.php">retour</a>');                                
    }
    elseif($suppr=0)  
    {
      echo(' erreur');                            
    }
    


    Cela devrait plutôt être :

     
    $result = $suppr->execute(); 
    
    if($result) // C'est le retour de la fonction qu'il faut tester
    {
       echo ('news supprimée </br>');
       echo('<a href="opera_sur_news.php">retour</a>');                                
     }
    else  // Il manquait un égal ( = au lieu de == )
    {
       echo(' erreur');        
     }
    


    Cela doit être à cause de ces erreurs que tu n'obtiens pas d'erreur lors de l'exécution de ton script.

    Piste pour la non suppression de ton enregistrement :
    Peut-être que tu n'a pas les droits de "delete" sur la base de données.

    Bonne recherche.
    0