Problème suppression

Résolu
Chers confères;
J'aurais besoin de votre aide pour un souci que je rencontre lors d'u suppression.
Lorsque je supprime un fiche planning, je souhaite supprimer les encaissements créés lors de la création d'une fiche planning.
Pour certaines fiches cela génère 2 lignes d'encaissements.
Lorsque je supprime, la suppression multiple ne fonctionne pas

$req_supp = 'SELECT en.id AS id_encaissement, id_planning,
   pla.id, count(pla.id) AS count_id_pla
   FROM encaissement en
   INNER JOIN planning pla ON id_planning = pla.id
   WHERE id_planning = '.$_GET['delete_pla'].'';

   $res = mysql_query($req_supp);
   $var = mysql_fetch_array($res);
  
   $id_planning = $var['id_planning'];
   $id_encaissement = $var['id_encaissement'];
           
if($var['count_id_pla'] == '2'){
     $supp_en = 'DELETE FROM encaissement WHERE id IN ('.$id_encaissement.','.($id_encaissement+1).')';
     //echo $supp_en.'<br />'; 
     $res_encaiss = mysql_query($supp_en);                  
   }else{    
     $supp_en = 'DELETE FROM encaissement WHERE id = '.$id_encaissement.'';
     echo $supp_en.'<br />'; 
     //$res_encaiss = mysql_query($supp_en);             
   }
 
 delete_row('planning', 'id', $_GET['delete_pla'],0);
 $mess_error = 'Le planning a bien été suprimé.';
}




merci de votre aide
Bien PHPment et MySQLment
Delaville

4 réponses

  1. Modérateur
    Bonjour,

    Pas besoin de faire de Select ....puis de boucle ....

    Essayes un truc du genre :
    $delete_pla =!empty($_GET['delete_pla']) ? $_GET['delete_pla']: NULL;
    if($delete_pla){
      $sql = "
       DELETE FROM encaissement WHERE id IN (
        SELECT en.id AS id_encaissement
        FROM encaissement en 
       INNER JOIN planning pla ON id_planning = pla.id
        WHERE id_planning = '$delete_pla';
      )";
      $res_encaiss = mysql_query($sql);        
    }
    


    Cordialement,
    Jordane
    0
    1. Merci mais ça ne change rien mes encaissement ne se supprime pas
      0
      1. Modérateur
        Tu as testé ta requête en direct dans ta BDD ??
        0
    2. au lieu de supprimé 2 lignes encaissement, fait un contrôle lors de l'insertion pour qu'il n'y ai qu'une ligne d'encaissement :)

      C'est possible ca ?
      0
      1. Merci pour votre aide, j'ai finalement résolu le problème en remplaçant les simple quote par des guillemets sur ma requête delete et bizarrement ça à marché
        0