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 :

Where et And


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 Where et And
    bonjour,

    j'ai un problème de syntaxe sur ce bout de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $paquet==""; // initilisation de $paquet
    if(isset($rows))
     
    $requete = "SELECT DISTINCT($liste_champ_email)
    	 	FROM `$liste_table`
    		where liste_champ_where='$liste_champ_where'  and  '$valeur_champ_where'=1
      		";
    je charge la liste des mails d'une table $liste_table sans le where ça fonctionne
    dés que je mets le where qui doit donner la liste des mails de la table qui ont pour valeur '$valeur_champ_where'=1

    j'ai rien

    je veux chercher la liste des mails adhérents dans la table si le champ valeur_champ_where est égal à 1 ( veux recevoir la new letter)

    merci de votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 247
    Points : 12 883
    Points
    12 883
    Par défaut
    Bonjour,
    Ce qu'il nous faudrait ici, c'est la requête telle qu'elle est exécutée, voir le message d'erreur renvoyé par la base. Et le SGBD utilisé.

    Tatayo.

  3. #3
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Ce qu'il nous faudrait ici, c'est la requête telle qu'elle est exécutée, voir le message d'erreur renvoyé par la base. Et le SGBD utilisé.
    +1
    Le SQL sans le PHP (?) aiderait grandement. Par exemple en donnant le résultat de echo $requete.

  4. #4
    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
    Bonjour et merci de ta réponse,
    c'est du php sur une base mysql
    c'est un script d'envoi de mailing par par paquets de 20 ou 30 ...(suivant réglage) jusqu'à la fin de liste sauf à ceux de désinscrits

    sans le where le script fonctionne très bien, j'ai rajouter 2 champs pour que les adhérents puissent se désinscrire de la liste automatiquement
    d’où pour l'envoi du mailing le where qui devrait permettre de ne plus envoyer qu'aux adh en 1 et pas au 0 (désinscrit )
    il n'y a pas de message d'erreur renvoyé , sauf que je n'ai aucun emails dans ma liste au lieu des 200 normalement dans ma liste sans le where
    donc le where me génére une erreur

  5. #5
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Le SQL sans le PHP (?) aiderait grandement. Par exemple en donnant le résultat de echo $requete.

  6. #6
    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 de ta réponse


    effectivement avec un écho requete de ...........
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    where liste_champ_where='$liste_champ_where'and valeur_champ_where =1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT(mailing_contact) FROM `GratosMailing_contact` where liste_champ_where='mailing'and valeur_champ_where =1
    peut être le mailing avec les ' ' qui n'est pas digéré

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 247
    Points : 12 883
    Points
    12 883
    Par défaut
    Donc si je comprends bien, ta table possède les colonnes liste_champ_where et valeur_champ_where ?
    Je serai curieux de voir la définition de cette table...

    Tatayo.

  8. #8
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Si tu as la requête pure SQL et que tu as le bonheur d'avoir l'outillage pour l'exécuter telle quelle (un SQuirrel SQL, HeidiSql ou même en ligne de commande), tu devrais pouvoir faire de l'avance

  9. #9
    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
    je t'ai mis la table en pj
    Images attachées Images attachées  

  10. #10
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Du coup ça devrait plutôt être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where liste_champ_where='$liste_champ_where'  and  valeur_champ_where=1 --et pas '$valeur_champ_where'=1

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 247
    Points : 12 883
    Points
    12 883
    Par défaut
    J'ajouterai que valeur_champ_where est un varchar, donc la valeur à comparer doit être entre quotes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where liste_champ_where='$liste_champ_where'  and  valeur_champ_where='1'
    Tatayo.

  12. #12
    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 à vous deux

    je vais essayer et je vous tiens informé

    bonne soirée

  13. #13
    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
    Bonjour de retour

    si j'envoie cette requête,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where liste_champ_where='$liste_champ_where'  and  valeur_champ_where=1
    l’écho de la requête me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT(email_adh) FROM `galette2_adherents` where liste_champ_where='envoi_adh' and valeur_champ_where=1
    mais aucun résultat n'est renvoyer

    si j'appelle echo $liste_champ_where;
    echo $valeur_champ_where;
    avant la requête l
    es valeurs sont bien renseignées nom du champ: envoi_adh valeur du champ = 1

    si je supprime le where j'ai bien la totalité des adresses email des adhérents
    et le 1 entre quotes ne change rien

    une idée ????

  14. #14
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Pour insister sur la piste donnée par Tatayo:

    J'ajouterai que valeur_champ_where est un varchar, donc la valeur à comparer doit être entre quotes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where liste_champ_where='$liste_champ_where'  and  valeur_champ_where='1'

  15. #15
    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 la réponse j'ai essayé mais c'est pareil

    j'ai donc modifié le type de champs dans les tables pour les mettre toutes en valeur_champ_where int(1)

    puisque en fait ce champ est 1 ou 0 zéro si les adhérents se désinscrivent de la mailing list

    pourquoi ce where me met le bazar

  16. #16
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Il y a un truc qui me semble confus. Une fois tu requêtes la table GratosMailing_contact, et une autre fois galette2_adherents. Du coup, la définition de table que tu nous as donnée, c'est laquelle?

  17. #17
    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
    en fait je choisi dans un formulaire de mailing la table et les champs pour envoyer un mailing

    voir PJ
    le script fonctionne bien et on s'en sert pour les lettres l'asso de généalogie
    sauf que je n'avait pas encore prévu la possibilité que certains adhérents se désinscrivent des listes

    d’où le rajout du where

    le script est mis à la disposition des associations sur le site http://gratosscript.fr
    Images attachées Images attachées  

  18. #18
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Hum.

    Je dirais qu'il faudrait commencer par mettre au point la requête en pur SQL, et vraiment la faire fonctionner à ce niveau-là, puis essayer de la retranscrire en PHP.

  19. #19
    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
    Bonjour

    désolé, mais je suis dans les inondations de la marne
    la journée pour barricader les portes fenêtres

    à+

Discussions similaires

  1. Where et And
    Par heidi28 dans le forum Débuter
    Réponses: 5
    Dernier message: 11/11/2008, 18h43
  2. [MySQL] Requête avec WHERE 1 AND et plein de OR le AND n'est pas pris en compte
    Par alsaco68 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/01/2008, 10h09
  3. Critère Where et And dans une requête :
    Par ForKlide dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/09/2007, 15h59
  4. SELECT * FROM xx WHERE yy AND zz AND tt AND
    Par french-petzouille dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/03/2007, 09h52
  5. probleme avec WHERE ... BETWEEN ... AND ...
    Par toyyo dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/11/2005, 14h25

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