Utilisation de LIKE

Fermé
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 - Modifié par djimson le 19/03/2010 à 20:22
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 - 19 mars 2010 à 21:48
Bonsoir,
Je voudrai savoir comment rechercher un mot dans un groupe de mot avec LIKE de mysql?
Voici par exemple une requête que j'ai réalisé.
$sql = "SELECT 'email'   
FROM table_1  
WHERE 'secteur' LIKE '%". $secteur. "%'";   
$req = mysql_query($sql);  
echo " ".$res." - ";  

Dans ma variable $secteur, j'ai par exemple "Accueil Administration et Secrétariat". Je voudrai que si l'un de ces mots se trouvant dans $secteur, qu'il m'affiche toutes les adresses mails concernée.
Mais ca ne marche pas. Es-ce mes % sont mal placés?
Merci bien
--

4 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
19 mars 2010 à 20:37
Ta variable $secteur ne doit contenir que "Accueil", "Administration" ou "Secrétariat", pas les trois.
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
19 mars 2010 à 20:39
Merci pour ta réponse mais comment faire pour que la recherche trouve un de ces mot? Au moins un mot? Car dans ma base, le champ secteur contient plusieur mots.
0
Bonjour

Les noms des champs soivent être entre accents graves (ou rien du tout), mais surtout pas entre apostrophes.
$sql = "SELECT email FROM table_1 WHERE secteur LIKE '%". $secteur. "%'";
D'autre part, tu récuères mal le résultat :
$req = mysql_query($sql);
echo " ".$req['email']." - ";
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
19 mars 2010 à 21:48
Merci bien.
Je penses avoir trouver la solution avec cet code :
$sql = "SELECT 'email' 
FROM table_1 
WHERE 'secteur' LIKE '%".htmlentities(trim($_POST['secteur']))."%'";


Mais j'ai autre une autre question.
Je veux envoyer un mail a ceux qui ont le profil de la recherche. J'arrive a envoyé le mais je ne veux pas envoyer a tous en même temps. Je voudrai que ca soit un envoi individuel.
Voici mon code.
$sql = "SELECT 'email' 
FROM table_1 
WHERE 'secteur' LIKE '%".htmlentities(trim($_POST['secteur']))."%'"; 
$req = mysql_query($sql);
$res = mysql_numrows($req);
$i=0;  
  

			$expediteur = "nom@domaine.com";
			$entete = "[Blabla]";
			//$email_bcc = "";
			$sujets = "Blabla";
			$message = "Cher(e) abonné(e) , ce poste de '". $_POST['secteur'] ."' correspond à votre profil:\n Pour plus de détails, nous vous invitons à consulter nos offres de ce jour en cliquant sur le lien suivant:
";
			$message .= "http://" . $_SERVER["SERVER_NAME"];
			$message .= "/emploi/emploi.php";
			$sujet = "$entete ".$sujets;
			$headers = "From: ".$expediteur;
			//if(strlen($email_bcc))
			//$headers .= "\nBCC: ".$email_bcc;
	
while($i!=$res) 
{ 
	
	$email.="".mysql_result($req,$i,"email").",";  
	$i++;	
}    
If(mail($email,stripslashes($sujet),stripslashes($message),$headers))
{
$ok = "envoyé";
}


Merci bien
0