diff --git a/admin/index.php b/admin/index.php index 825f02a7c51736d7adeb40efe7aa0e4b93f2f624..aa8dc5b6a2a6b2eb6f9d956a85b3595a98d4e2fa 100644 --- a/admin/index.php +++ b/admin/index.php @@ -86,24 +86,16 @@ while($dsondage = $sondage->FetchNextObject(false)) { if (issetAndNoEmpty('confirmesuppression'.$i) === true) { // On inclut la routine de suppression $date=date('H:i:s d/m/Y'); - - $req = 'DELETE s, su, u, c - FROM - sondage s LEFT JOIN sujet_studs su - ON su.id_sondage = s.id_sondage - LEFT JOIN user_studs u - ON u.id_sondage = s.id_sondage - LEFT JOIN comments c - ON c.id_sondage = s.id_sondage - WHERE s.id_sondage = '.$connect->Param('id_sondage'); - - $sql = $connect->Prepare($req); - $connect->Execute($sql, array($dsondage->id_sondage)); - - // ecriture des traces dans le fichier de logs - error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, 'logs_studs.txt'); + + if ( remove_sondage( $connect, $dsondage->id_sondage ) ) { + + // ecriture des traces dans le fichier de logs + error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, 'logs_studs.txt'); + + } + } - + $i++; } @@ -152,4 +144,4 @@ echo '</html>'."\n"; // si on annule la suppression, rafraichissement de la page if (issetAndNoEmpty('annulesuppression') === true) { -} \ No newline at end of file +} diff --git a/adminstuds.php b/adminstuds.php index a111504ce30de6ce67611df45dc5dd78ee36c9ad..2a85c3912cd44c04db04de7d9b526a09e92436bf 100644 --- a/adminstuds.php +++ b/adminstuds.php @@ -313,18 +313,7 @@ if (isset($_POST["confirmesuppression"]) || isset($_POST["confirmesuppression_x" $nbuser=$user_studs->RecordCount(); $date=date('H:i:s d/m/Y:'); - //destruction des données dans la base SQL - $sql = 'DELETE s, su, u, c - FROM - sondage s LEFT JOIN sujet_studs su - ON su.id_sondage = s.id_sondage - LEFT JOIN user_studs u - ON u.id_sondage = s.id_sondage - LEFT JOIN comments c - ON c.id_sondage = s.id_sondage - WHERE s.id_sondage = '.$connect->Param('numsondage'); - $sql = $connect->Prepare($sql); - if ($connect->Execute($sql, array($numsondage))) { + if ( remove_sondage( $connect, $numsondage ) ) { // on ecrit dans le fichier de logs la suppression du sondage error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, 'admin/logs_studs.txt'); @@ -1257,4 +1246,4 @@ echo '<div class="separateur"> </div>'; bandeau_pied_mobile(); echo '</form>'."\n"; echo '</body>'."\n"; -echo '</html>'."\n"; \ No newline at end of file +echo '</html>'."\n"; diff --git a/fonctions.php b/fonctions.php index adc128b665fc7be34b966d56eef2b42f077cb753..2e77b864b975e0be60238ef02382f0a81e5bca2c 100644 --- a/fonctions.php +++ b/fonctions.php @@ -203,6 +203,33 @@ function getUrlSondage($id, $admin = false) return $url; } +function remove_sondage( $connect, $numsondage ){ + + $connect->StartTrans(); + + $req = 'DELETE FROM sondage WHERE id_sondage = ' . $connect->Param('numsondage') ; + $sql = $connect->Prepare($req); + $connect->Execute($sql, array($numsondage)); + + $req = 'DELETE FROM sujet_studs WHERE id_sondage = ' . $connect->Param('numsondage') ; + $sql = $connect->Prepare($req); + $connect->Execute($sql, array($numsondage)); + + $req = 'DELETE FROM user_studs WHERE id_sondage = ' . $connect->Param('numsondage') ; + $sql = $connect->Prepare($req); + $connect->Execute($sql, array($numsondage)); + + $req = 'DELETE FROM comments WHERE id_sondage = ' . $connect->Param('numsondage') ; + $sql = $connect->Prepare($req); + $connect->Execute($sql, array( $numsondage )); + + $suppression_OK = ! $connect->HasFailedTrans() ; + $connect->CompleteTrans(); + + return $suppression_OK ; + +} + $connect=connexion_base(); @@ -216,4 +243,4 @@ define('NO_POLL_ID', 0x0001000000); define('INVALID_EMAIL', 0x0010000000); define('TITLE_EMPTY', 0x0100000000); define('INVALID_DATE', 0x1000000000); -$err = 0; \ No newline at end of file +$err = 0; diff --git a/scripts/nettoyage_sondage.php b/scripts/nettoyage_sondage.php index 57ab487ad06a3d7e7a5b6b4239befe4a244090b4..9b5d1633c5a81a5c9d2322906d08380591535266 100644 --- a/scripts/nettoyage_sondage.php +++ b/scripts/nettoyage_sondage.php @@ -49,21 +49,13 @@ $sondage=$connect->Execute("select * from sondage"); while ($dsondage=$sondage->FetchNextObject(false)) { if ($date_courante > strtotime($dsondage->date_fin)) { //destruction des données dans la base - - $req = 'DELETE s, su, u, c - FROM - sondage s LEFT JOIN sujet_studs su - ON su.id_sondage = s.id_sondage - LEFT JOIN user_studs u - ON u.id_sondage = s.id_sondage - LEFT JOIN comments c - ON c.id_sondage = s.id_sondage - WHERE s.id_sondage = '.$connect->Param('id_sondage'); - - $sql = $connect->Prepare($req); - $connect->Execute($sql, array($dsondage->id_sondage)); - - // ecriture des traces dans le fichier de logs - error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, '../admin/logs_studs.txt'); + + if ( remove_sondage( $connect, $dsondage->id_sondage ) ) { + + // ecriture des traces dans le fichier de logs + error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, '../admin/logs_studs.txt'); + + } + } -} \ No newline at end of file +}