[RESOLU] selection dans bdd pour envoi mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] selection dans bdd pour envoi mail

Re: selection dans bdd pour envoi mail

par Patriboom » 02 déc. 2016, 22:54

Félicitations!
N'oublie pas de passer le sujet en « Résolu »

Re: selection dans bdd pour envoi mail

par cite carter » 02 déc. 2016, 21:36

Super, l' echo m'a bien servi, merci
avant:

Code : Tout sélectionner

$Query.= ' AND age = '.$_POST['age'].'';
apres:

Code : Tout sélectionner

$Query.= ' AND age = \''.$_POST['age'].'\'';
et voilà ça fonctionne.

Re: selection dans bdd pour envoi mail

par Patriboom » 02 déc. 2016, 18:57

Je te suggère de lire ta requête et la vérifier avec phpMyAdmin (ou l'équivalent).
Pour ce faire, ajoute à la ligne 28 une commande affichant ta requête
echo 'Voici ma requête: ' . $Query;
Analyse le résultat et corrige au besoin.

Tu sais sans doute récupérer les données d'une série de input radio.
Elles seront dans $_POST["Name_du_input"];
Tu peux les voir en faisant
var_dump($_POST);

Re: selection dans bdd pour envoi mail

par cite carter » 02 déc. 2016, 16:19

Ok, mais dans le cas d'une ville sans choisir l'age, j'ai le même message d'erreur.

Re: selection dans bdd pour envoi mail

par tof73 » 01 déc. 2016, 21:41

$Query.= ' AND age = "'.$_POST['age'].'"';
si age contient bien une chaine de caractères. si c'est un nombre, il faut changer la valeur du champ dans le formulaire html pour mettre autre chose que "18 ans", "18" par exemple.

Re: selection dans bdd pour envoi mail

par cite carter » 01 déc. 2016, 21:34

Sur mon formulaire d’envois de newsletter j'ai ajouté les input dont j'ai besoin qui correspondent aux colonnes de ma bdd et j'essaie de récupérer les choix, s'il y en a, comme ceci:

Code : Tout sélectionner

$Query = 'SELECT * FROM maBdd WHERE categorie = \'adh\''; if ($_POST['age']) { $Query.= ' AND age = '.$_POST['age'].''; } if ($_POST['ville']) { $Query.= ' AND ville='.$_POST['ville'].''; } $reponse = $bdd->query($Query); $nbremail = 0; $envoimail = 0; while ($donnees = $reponse->fetch()) { $nbremail += 1; echo $donnees['mail'];
résultat actuel:
Si je ne fait pas de choix particulier, le formulaire envois bien à toute la catégorie "adh".
Si je fait un choix d'age ou autre, j'ai un message d'erreur:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column '18 ans' in 'where clause'' in /home/monsite/public_html/envoie.php:29 Stack trace: #0 /home/monsite/public_html/envoie.php(29): PDO->query('SELECT * FROM n...') #1 {main} thrown in /home/monsite/public_html/envoie.php on line 29
la ligne 29 est celle-ci:

Code : Tout sélectionner

$reponse = $bdd->query($Query);

Re: selection dans bdd pour envoi mail

par Spols » 01 déc. 2016, 00:08

Qu'arrive tu à faire, qu'as tu essayé ?
ou bloque tu ?

Nous pouvons t'aider à y parvenir, mais pas le faire à ta place

Re: selection dans bdd pour envoi mail

par cite carter » 30 nov. 2016, 19:43

Oui ça je sais faire, je que je voudrais c'est qu'en cliquant sur des cases ( input type="radio" ) ça me rajoute automatiquement les WHERE et AND à la requête.

Re: selection dans bdd pour envoi mail

par Spols » 30 nov. 2016, 09:29

Ajoute une clause WHERE à ta requète

par exemple WHERE field_age >= 18
tu peux aussi inclure des AND pour avoir plusieurs conditions

selection dans bdd pour envoi mail

par cite carter » 29 nov. 2016, 21:52

Bonjour à tous

je voudrais sélectionner certaines lignes dans ma base de donnée selon des critères de certaines colonnes afin de viser à qui envoyer une newsletter.

J'ai une colonne âge, et une ville et je voudrais pouvoir envoyer juste aux majeurs ou aux majeurs d'une certaine ville etc...

et ceci juste en sélectionnant sur des input type="radio"

Pour l'instant j'envoie à toute la base avec la requête SELECT et je ne trouve pas comment pour insérer les conditions dans la requête.

Code : Tout sélectionner

$reponse = $bdd->query('SELECT * FROM newsletter');
Merci de bien vouloir m'aider.