IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Variable dans le Where d'un select


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut Variable dans le Where d'un select
    Bonjour à tous,

    j'ai besoin d'un petit coup de main,

    je cherche à effectuer une requête d'envoi de mailing en fonction du statut (en faite du numéro de la liste )
    or mes if et elseif ne fonctionne pas et me retourne 1
    je ne vois pas mon erreur

    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    // //////////////////////////////////////////////////////////////////////////////
    // **********Requete d'envoi email en fonction du statut*************************
    // //////////////////////////////////////////////////////////////////////////////
    $select_statut = $_POST['select_statut'];
    //echo $select_statut ;
     
    $select_statut=9;  //pour essai
     
    if ($select_statut= 1) {
    	$statut= 1; // email aux membres du bureau
    }
    elseif ($select_statut= 2){
    	$statut= 2;
    }
    elseif ($select_statut= 4){
    	$statut= 4; // email aux membres actifs
    }
    elseif ($select_statut= 5){
    	$statut= 5; // email aux anciens membres
    }
    elseif ($select_statut= 9){
    	$statut= 9;  // essais
    }
     
    echo $statut ;
     
    $requete = "
    SELECT DISTINCT email_adh
    FROM $table
    where
    id_statut= '$statut' ";
     
     
    $result = mysql_query($requete);
     
    $taillepaquet = mysql_num_rows($result); //Nbre Enregistrements

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    Déjà remplace ta série de if / elseif par un switch, ce sera plus propre.
    Tu utilise l'opérateur = et pas == pour tester tes valeurs dans les if

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    Merci Benjamin de ta réponse,

    avec les if ca fonctionne, c'est super

    avec switch je n'ai pas encore tout compris en particulier pour les syntaxes

    si je peux abuser de ta bonté,

    je voudrais que l'option 2 soit en fait le cumul des deux listes 1 et 2

    "les membres du bureau sont en fait également administrateurs "

    merci d'avance bonne journée

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Avec un swtich ça se fait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    switch ($select_statut) {
      case 1:
      case 2: $status = 2; break;
      case 3: $status = 3; break;
      // ... tous tes cases
      default: throw new RuntimeException("Unexpected value for \$select_status: $selected_status"); break;
    }
    Ne JAMAIS oublier les break

  5. #5
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    Merci pour to bout de script qui fonctionne, mais j'ai toujours le problème pour le résultat de case2 qui doit cumuler Case1+case2


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //$select_statut = $_POST['select_statut'];
    $select_statut = 1;  //pour essai
    echo $select_statut ;
    switch ($select_statut) {
    	case 1:	$statut = 1; break;
    	case 1:	//ne fonctionne pas seul et donne le resultat de case 2
    	case 2: $statut = 2; break;// OK donne le resultat case 2 seul
    		//or je voudrais le resultat de case 1 + case 2
    	case 3: $statut = 3; break;
    	case 4: $statut = 4; break;
    	case 5: $statut = 5; break;
    	case 9: $statut = 9; break;
     
    		// ... tous tes cases
    	default: throw new RuntimeException("Unexpected value for \$select_status: $selected_status"); break;
    }

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Quand tu ne mets pas de break dans un case, on passe automatiquement au contenu du case suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $status = 0;
    switch ($selected_status) {
      case 1: $status = 1;
      case 2: $status += 2; break;
      // ...
    }

Discussions similaires

  1. If dans le where d'un SELECT
    Par NFHnv dans le forum SQL
    Réponses: 9
    Dernier message: 17/01/2013, 15h36
  2. Macro variable dans PROC SQL : fusion de SELECT
    Par docteurdorian dans le forum Macro
    Réponses: 6
    Dernier message: 18/11/2010, 14h48
  3. [MySQL] Problème de variable dans instruction WHERE
    Par ripout dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/08/2010, 10h21
  4. Alignement de variables dans les <option> d'un <select>
    Par Crowell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/07/2007, 17h42
  5. Réponses: 9
    Dernier message: 05/07/2005, 08h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo