Action alternative(modifier)

Résolu/Fermé
lolerki Messages postés 606 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 1 mars 2017 - Modifié par lolerki le 5/02/2015 à 20:53
Lilly_SF Messages postés 6 Date d'inscription jeudi 5 février 2015 Statut Membre Dernière intervention 5 février 2015 - 5 févr. 2015 à 21:13
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 jeudi 5 février 2015 Statut Membre Dernière intervention 5 février 2015 6
5 févr. 2015 à 20:58
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 lundi 21 avril 2008 Statut Membre Dernière intervention 1 mars 2017 102
Modifié par lolerki le 5/02/2015 à 21:13
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 jeudi 5 février 2015 Statut Membre Dernière intervention 5 février 2015 6
5 févr. 2015 à 21:13
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