Action alternative(modifier)

Résolu
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   -  
Lilly_SF Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je viens vers vous car après plusieurs essai je bloque sur le problème suivant :
j'ai un $_GET['action'] dans un switch qui me permet suivant l'action dans choisir une.
Mais dans une ce celle-ci je voudrais que quand je clic elle face une action et quand je reclic une autre. (Ce n'es pas très claire) mais en gros j'ai un bouton modifier qui quand je clic prend la valeur 0 puis si je reclic la valeur 1 ainsi de suite. Saut que si j'ai la valeur 1 il passe a 0, mais ne revient jamais a 1..

voilà le code :

$action = isset($_GET['action'])?$_GET['action']:NULL;
switch ($action) {
    case 'role':
        
  $choix = $bdd->prepare("SELECT * FROM membre WHERE id = ?");
  $choix->execute(array($_GET['id']));
  
  $alternative = $choix->fetch();
  
  if($alternative['permission'] = 0)
  {
  $role = $bdd->prepare("UPDATE membre SET permission = :role WHERE id = :id");
  $role->execute(array(
  'id' => $_GET['id'],
  'role' => 1 // 1 = admin
  ));
  print_r($alternative['permission']);
  ?><center><p class="message">Le rôle de l'utilisateur à bien été changer</p></center><?php
  header("Refresh:1 ;url=index.php?page=AdministrationUtilisateur");
  }
  else if($alternative['permission'] = 1)
  {
  $role = $bdd->prepare("UPDATE membre SET permission = :role WHERE id = :id");
  $role->execute(array(
  'id' => $_GET['id'],
  'role' => 0 // 0 = membre normal
  ));
  ?><center><p class="message">Le rôle de l'utilisateur à bien été changer</p></center><?php
  header("Refresh:1 ;url=index.php?page=AdministrationUtilisateur");
  }
  else{}
  
        break;


et le bouton en question :

<a href="index.php?page=AdministrationUtilisateur&id=<?php echo $resultat['id'];?>&action=role">Modifier</a> [<?php echo $resultat['permission'];?>]


Merci d'avance !

A voir également:

3 réponses

Lilly_SF Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   6
 
Tu peux faire cela dans une seule et même requête :

UPDATE membre SET permission = !permission 


Tu n'as même pas besoin de tester la valeur avant.
0
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   102
 
Merci de ta réponse,
Je connaissais pas cette solution, je vais la tester. Es-ce une sorte de != ? ou c'est un booléen ?

EDIT : cela fonctionne très bien je te remercie.
0
Lilly_SF Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   6
 
même si dans la base c'est un champ de type int, le point d'exclamation fonctionne comme un booléen, et fait passer la variable à 0 -> 1 -> 0 -> 1 ...
0