2011-05-06 3 views
1

J'ai une table utilisateur comme ceci: -créer une alerte et continuer sur cette page après alerte

   guid    | username |    password    | firstname | lastname | location | emailad 
dress | userrole 
-----------------------------------+----------+----------------------------------+-----------+-----------+----------+-------- 
------+--------------- 
8024259764dc3e8ee0fb6f5.84107784 | james | 827ccb0eea8a706c4c34a16891f84e7b | james  | bond  | NY  | [email protected] 
.com | administrator 
18689183644dc3e91571a364.71859328 | saty  | 250cf8b51c773f3f8dc8b4be867a9a02 | saty  | john  | NY  | [email protected] 
om | administrator 
2644885344cecd6f2973b35.63257615 | admin | 21232f297a57a5a743894a0e4a801fc3 | System | Generated |   | 
     | administrator 
(3 rows) 

maintenant ma requête postgre pour supprimer la ligne ....

$query = "delete from users where username!= 'admin' and guid='".$guid."'"; 
    $result = pg_query($conn, $query); 


    ?> 
    <script type="text/javascript"> 
      alert("Cannot delete this .\n It is system generated(s)."); 
     </script>  
    <?php 

(1) lorsque je supprime le nom d'utilisateur un par un puis supprime se produit dans ma page userlist.php, je ne veux pas supprimer admin donc j'utilise username!= 'admin' dans la condition comme indiqué ci-dessus. (2) Maintenant, quand je supprime un nom d'utilisateur (3 lignes) de la table utilisateur, l'alerte se produit & il supprime de userlist.php après que ma page userlist.php est vide. Enfin quand je rafraîchis la page puis mon nom d'utilisateur admin vu ..

ainsi peut-on mettre la meilleure condition dans mon codage. je ne veux pas actualiser la page en réalité je veux que ma page continue après l'alerte alors plz aidez-moi

+0

double possible (http: // stackoverflow.com/questions/810180/how-to-prevent-deletion-of-the-first-row-in-table-postgresql) –

+1

Cela ressemble étonnamment à: http://stackoverflow.com/questions/5908897/ query-for-my-f premier rang-admin-pour-ne-supprimer- et http://stackoverflow.com/questions/810180/comment-precher-preprendre-de-la-premiere-dans-le-table-postgresql –

Répondre

0

utilisent ce

$query = "select username from users where username='admin' and guid='".$guid."'"; 
    $result = pg_query($conn, $query); 
    AddLog("deleteUI.php","Query : ".$query,ERR_DEBUG_HIGH); 
    while ($row = pg_fetch_array($result)) 

    //if (pg_affected_rows($result)) 
     { 
      AddLog("deleteUI.php","Error !!! COMMIT",ERR_DEBUG_HIGH); 
      pg_close($conn); 
      ?>  
     <script type="text/javascript">    
     alert("Cannot delete the built-in admin user."); 
     </script>   
     <?php 
     exit(); 
     } 

& requête de suppression comme

$query = "delete from users where guid='".$guid."'"; 
0

Je suppose que vous n'exécutez pas une requête SELECT après la suppression. Assurez-vous que votre liste est inférieure à la requête de suppression, de sorte que votre page serait quelque chose comme

if($_GET['delete']) { 
    // delete query 
} 

$sql = "SELECT * FROM"; 
// rest for getting the complete list. 

De cette façon, vous devriez obtenir votre liste actualisée ..

// edit: oh et peut-être ajouter return true; après la alert pourrait continuer à exécuter la page, car javascript pourrait bloquer l'exécution d'une alerte (pas sûr si elle renvoie false par défaut). [? Comment empêcher la suppression de la première ligne de la table (PostgreSQL)]