Requête pour alerte 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 : Requête pour alerte mail

par Truc » 21 mars 2007, 22:28

Ce n'est pas la suite directe du sujet ?!

Si tu as des cases à cocher sous forme de tableau < name = "cases[]" > tu peux faire :
if(isset($_POST['cases']))
{
        $sql .= " type IN (".implode(',',$_POST['cases']).") AND ";
} 
Pas sûr que c'est ce que tu voulais :?

re-problème

par listi » 21 mars 2007, 10:21

Bonjour à tous !

J'avais mis ce sujet Résolu mais je rencontre un autre petit souci alors me revoilà :)

J'ai bien réussi à faire l'alerte mail avec tous les critères "AND". Mais ce AND me pose un souci.

Je prend juste un exemple, imaginons que j'ai 4 cases à cocher avec 4 choix.

Si je coche la case 1 et 4 je voudrais sortir tous les résultats qui contiennent 1 OU 4 et non pas 1 ET 4.

Si je remplace AND par OR et bien la concaténation avec les autres critères des autres champs ne colleront plus.

En fait l'idéal serait pour moi de pouvoir mettre des OR pour chaque groupe de case à cocher, dans ce style :

SELECT * FROM annonce WHERE (choix1=choix1 OR choix2=choix2...) AND accepter='oui' AND (type1=type1 OR type2=type2...)...etc

Pouvez-vous m'aider à résoudre ce problème ?

Merci beaucoup !

par listi » 07 mars 2007, 17:28

J'avais sorti tout ça mais ça ne marchait pas...il manquait juste le tit point pour $message lol

J'ai réussi ! Merci beaucoup à vous deux !

Merci de mettre résolu :)

par mere-teresa » 07 mars 2007, 17:04

Ben sors ce qui n'a besoin d'être défini qu'une fois de la boucle (headers).

par Truc » 07 mars 2007, 17:01

sors la variable $header de la boucle tout comme $body et place un point avant le égal (.=) de $message en initialisant cette variable avant la boucle à vide.

par Invité » 07 mars 2007, 16:01

Re re !

Je reviens avec un souci.
<?php

$sql1 = mysql_query("SELECT * FROM annonce_alerte");
while($result = mysql_fetch_array($sql1))
{
	$sql = "SELECT * FROM annonce WHERE ";
	if(isset($result['type2']))
	{
		$sql .= "type2= '".$result['type2']."' AND ";
	}
	if(isset($result['type3']))
	{
		$sql .= "type3= '".$result['type3']."' AND ";
	}
	$sql .= "accepter='oui' AND date_annonce <= '".$result['date2']."' AND date_annonce >= '".$result['date1']."'";

	$aff = mysql_query($sql);
	
	while($data = mysql_fetch_array($aff))
	{
		$message = '<p><b>annonce : </b> '.$data['type2'].'<br>id : '.$data['id'].'<br>ville : '.$data['ville'].'<br>date du annonce : '.$data['date_annonce'].' (entre '.$result['date1'].' et '.$result['date2'].')';
	
		$headers  = "From:[email protected]\n"; 
		$headers .= "MIME-version: 1.0\n"; 
		$headers .= "Content-type: text/html; charset= iso-8859-1\n"; 
	
		$sujet    = "petites annonces alerte email";
		$body  ='	<html><head></head><body><p>Bonjour,<br>'.$message.'</body></html>';
	}
	
	$to = $result['email'];
	mail($to,$sujet,$body,$headers);
	
	echo '<br><br>Liste à envoyer à '.$result['id_membre'].' ('.$result['email'].')<hr>';
}
?>
Voici le code que j'ai fait à peu près pour l'envoi du mail. Le problème réside dans l'envoi du mail qui n'envoit que la dernière annonce à chaque fois. Or j'aimerais qu'il envoit toutes les annonces correspondants aux critères.

Si je met le mail() dans la boucle je recevrais X mails pour X annonces et si je le met en dehors comme ici je ne reçois que le dernier.

Comment faire pour envoyer toute la liste de la boucle pour un mail, je ne vois pas du tout...

Merci !

par listi » 07 mars 2007, 10:34

ohhh j'y avais pas du tout pensé !

Je teste avec ça ;)

Merci beaucoup ! Je repasserais te dire ce qu'il en est !

par mere-teresa » 07 mars 2007, 10:31

Tu connais le .= ?
$req = "SELECT *
FROM table
WHERE champ = valeur";
//et tu testes si la case est cochée
$req .= "AND champ2 = valeur2";

Requête pour alerte mail

par listi » 07 mars 2007, 10:22

Bonjour à tous,

J'ai un petit problème pour faire ma requête d'envoi d'alerte mail selon plusieurs critères. Je vous expose mon souci.

La personne rempli un formulaire avec plusieurs critères, par exemple par des cases à cocher : choix1, choix2 et choix3.

Dans ma requête je met WHERE choix1='.$choix1.' AND choix2='.choix2.' AND choix3='.choix3.'

Mais comme il s'agit de case à cocher, la personne peut choisir choix1 et choix3, tout comme choix2 et choix3...etc. donc tout plein de probabilités. Je ne vois pas comment je peux faire ma requête avec ça. Si la case n'est pas cochée ne pas en tenir compte dans ma requête.

Pouvez-vous m'aider ?

Merci !