Gérer si il y a plusierus mots ds un champs
Fermé
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
-
12 févr. 2008 à 12:59
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 - 13 févr. 2008 à 14:07
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 - 13 févr. 2008 à 14:07
A voir également:
- Gérer si il y a plusierus mots ds un champs
- Gerer les profils netflix - Guide
- Gerer foyer netflix - Accueil - Guide streaming
- Mettre un mot de passe sur un dossier - Guide
- Identifiants et mots de passe - Guide
14 réponses
Enax
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
12 févr. 2008 à 13:30
12 févr. 2008 à 13:30
Fonction explode()
https://www.php.net/manual/fr/function.explode.php
https://www.php.net/manual/fr/function.explode.php
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
12 févr. 2008 à 18:34
12 févr. 2008 à 18:34
oue ms g deja $donnees['mots_clé']==$_POST['mots_clé'])) dc mots clé é deja ds la ( donc comment diférencié lé diférents mots clé ki sont ds la bdd $donnees['mots_clé']==$_POST['mots_clé'][1] $donnees['mots_clé']==$_POST['mots_clé'][2]???
moi fodré un truc ki fasse si un des mots clé kje tape se trouve ds la bdd(ds le champs mots clé) alors il mafiche la ligne corespondante
car en fait ds ce ke g actuellement si je mé atomes et fisike comem motrs clé pour lui ca fé ke "un mot"
jvoi pa tro avec explode coment faire
merci de votre aide
moi fodré un truc ki fasse si un des mots clé kje tape se trouve ds la bdd(ds le champs mots clé) alors il mafiche la ligne corespondante
car en fait ds ce ke g actuellement si je mé atomes et fisike comem motrs clé pour lui ca fé ke "un mot"
jvoi pa tro avec explode coment faire
merci de votre aide
gryzzly
Messages postés
4608
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 334
12 févr. 2008 à 18:38
12 févr. 2008 à 18:38
Merci de faire l'effort de te faire comprendre par tous. Le language texto, on en a marre.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
12 févr. 2008 à 18:39
12 févr. 2008 à 18:39
Commence par relire la charte de CCM:
"Rédiger les messages dans un langage clair sans abréviations, style télégraphique ou mode SMS."
C'est écrit juste à droite !
Ton post est pénible à lire.
"Rédiger les messages dans un langage clair sans abréviations, style télégraphique ou mode SMS."
C'est écrit juste à droite !
Ton post est pénible à lire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
12 févr. 2008 à 18:43
12 févr. 2008 à 18:43
oui mais j'ai deja $donnees['mots_clé']==$_POST['mots_clé'])) donc mots clé est déja dans la parenthése donc comment diférencier les
différents mots clé qui sont dans la bdd $donnees['mots_clé']==$_POST['mots_clé'][1] $donnees['mots_clé']==$_POST['mots_clé'][2]???
moi il me faudrait un truc qui fasse :si un des mots clé que je tape se trouve dans la bdd(dans le champs mots clé) alors il mafiche la ligne correspondante
car en fait dans le cas que j'ai actuellement ,si je met atomes et fisike comme mots clé pour lui ca fé que "un mot"
donc je ne vois pas trop avec explode coment faire
merci de votre aide5 message(s) posté(s) depuis le lundi 11 février 2008
désolé pour mon langage
différents mots clé qui sont dans la bdd $donnees['mots_clé']==$_POST['mots_clé'][1] $donnees['mots_clé']==$_POST['mots_clé'][2]???
moi il me faudrait un truc qui fasse :si un des mots clé que je tape se trouve dans la bdd(dans le champs mots clé) alors il mafiche la ligne correspondante
car en fait dans le cas que j'ai actuellement ,si je met atomes et fisike comme mots clé pour lui ca fé que "un mot"
donc je ne vois pas trop avec explode coment faire
merci de votre aide5 message(s) posté(s) depuis le lundi 11 février 2008
désolé pour mon langage
Enax
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
12 févr. 2008 à 19:08
12 févr. 2008 à 19:08
Tu précises dans ton formulaire de séparer les mots par un caractère précis (espace, plus, slash...).
Tu exploses la chaîne en fonction du séparateur :
Puis tu fais ta recherche avec les éléments de l'array.
Tu exploses la chaîne en fonction du séparateur :
$mots_cle = explode('+', $_POST['mots_clé']);
Puis tu fais ta recherche avec les éléments de l'array.
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
12 févr. 2008 à 19:15
12 févr. 2008 à 19:15
j'ai un souci en effet quand j'utilise la fonction explode dans mo ncode cela m'affiche a chaque fois tous les mots_clé qui sont en 1ére position dans le champs mot_clé de ma base de données.
Or je voudrais qu'il m'affiche tous les mots de chaque "case" du champs mots clé
exemple actuellement dans la bdd il y a :- ligne 1 il y a atomes physique comme mots clé
-ligne 2 il y a sciences silicium
actuellement avec mon code ca maffiche quand je mets $pieces[0] : atomes sciences
actuellement avec mon code ca maffiche quand je mets $pieces[1] :physique silicium
moi je voudrais que ca m'affiche atomes sciences pour $pieces[0] et physique silicium pour $pieces[1]
mon code actuel :
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp
$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
while ($donnees = mysql_fetch_array($reponse))
{
$pieces = explode(" ", $donnees['mots_clé']);
echo $pieces[0];
echo $pieces[1];
?>
Or je voudrais qu'il m'affiche tous les mots de chaque "case" du champs mots clé
exemple actuellement dans la bdd il y a :- ligne 1 il y a atomes physique comme mots clé
-ligne 2 il y a sciences silicium
actuellement avec mon code ca maffiche quand je mets $pieces[0] : atomes sciences
actuellement avec mon code ca maffiche quand je mets $pieces[1] :physique silicium
moi je voudrais que ca m'affiche atomes sciences pour $pieces[0] et physique silicium pour $pieces[1]
mon code actuel :
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp
$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
while ($donnees = mysql_fetch_array($reponse))
{
$pieces = explode(" ", $donnees['mots_clé']);
echo $pieces[0];
echo $pieces[1];
?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
12 févr. 2008 à 20:36
12 févr. 2008 à 20:36
Bonsoir,
Normal tu ne fais pas ta requette avec des criteres
$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
il faut:
Normal tu ne fais pas ta requette avec des criteres
$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
il faut:
$pieces = explode(" ", $_POST['mots_cles']); for($i=0;$i<sizeof($pieces);$i++){ $reponse = mysql_query("SELECT * FROM base_physique WHERE champ_mots_cles='".$pieces[$i]."'"); // Requête SQL while ($donnees = mysql_fetch_array($reponse)){ echo $donnees['champ_mots_cles']."<br>"; } }
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
12 févr. 2008 à 21:00
12 févr. 2008 à 21:00
j'ai testé ton code alain et il n'y a rien qui s'affiche...je ne sais pas pourquoi
le code:
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp
$pieces = explode(" ", $_POST['mots_clé']);
for($i=0;$i<sizeof($pieces);$i++)
{
$reponse = mysql_query("SELECT * FROM base_physique WHERE mots_clé='".$pieces[$i]."'"); // Requête SQL
while ($donnees = mysql_fetch_array($reponse))
{
echo $donnees['mots_clé']."<br>";
}
}
?>
<?php
mysql_close();
?>
le code:
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp
$pieces = explode(" ", $_POST['mots_clé']);
for($i=0;$i<sizeof($pieces);$i++)
{
$reponse = mysql_query("SELECT * FROM base_physique WHERE mots_clé='".$pieces[$i]."'"); // Requête SQL
while ($donnees = mysql_fetch_array($reponse))
{
echo $donnees['mots_clé']."<br>";
}
}
?>
<?php
mysql_close();
?>
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
13 févr. 2008 à 07:52
13 févr. 2008 à 07:52
re,
si quelqu'un pouvait me renseigner sur mon probléme ce serait cool car je suis un peu en galérre la ....
si quelqu'un pouvait me renseigner sur mon probléme ce serait cool car je suis un peu en galérre la ....
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
13 févr. 2008 à 08:54
13 févr. 2008 à 08:54
C'est normal :
1. mot-clé n'est pas un bom nom de colonne mysql, utilise plutôt motClef
2. si cette colonne motClef contient "physique silicium", il est normal qu'un SELECT avec WHERE motClef = "physique" ne trouve pas l'enregistrement correspondant : utilise plutôt WHERE motClef like '%physique%'
3. le fait de générer un SELECT par mot-clef de recherche n'est pas bon : utilise plutôt WHERE motClef like '%physique%' OR motClef like '%chimie%' etc...
Lit la doc php/mysql, réflechis, expérimente...
1. mot-clé n'est pas un bom nom de colonne mysql, utilise plutôt motClef
2. si cette colonne motClef contient "physique silicium", il est normal qu'un SELECT avec WHERE motClef = "physique" ne trouve pas l'enregistrement correspondant : utilise plutôt WHERE motClef like '%physique%'
3. le fait de générer un SELECT par mot-clef de recherche n'est pas bon : utilise plutôt WHERE motClef like '%physique%' OR motClef like '%chimie%' etc...
Lit la doc php/mysql, réflechis, expérimente...
ladj59
Messages postés
322
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
29 décembre 2008
3
13 févr. 2008 à 13:31
13 févr. 2008 à 13:31
je suis d'accord avec toi...cependant je n'arrive toujours pas a resudre mon probléme...
En effet, il faudrait que quand je tape un mot clé dans ma case recherche il regarde tous les mots clé qui sont dans la base de données sachant que dans chaque case de la base de données peut conteni un ou plusieurs mots clé donc quand il n'a a qu'un mot ca marche normalement mais quand il y en a plusieurs je n'arrive toujours pas à gérer le cas...
SVP de l'aide
jr'ai essayé pas mal de choses mais en vain....
En effet, il faudrait que quand je tape un mot clé dans ma case recherche il regarde tous les mots clé qui sont dans la base de données sachant que dans chaque case de la base de données peut conteni un ou plusieurs mots clé donc quand il n'a a qu'un mot ca marche normalement mais quand il y en a plusieurs je n'arrive toujours pas à gérer le cas...
SVP de l'aide
jr'ai essayé pas mal de choses mais en vain....
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
13 févr. 2008 à 13:38
13 févr. 2008 à 13:38
Essaye ce que je te suggère dans mon message et que je te rappelle :
1. changer le nom de colonne de ta table en nomClef (mots_clé ne peut pas marher)
2. essaye de changer ta clause WHERE en WHERE motClef like '%physique%' (je te laisse le soin d'adapter ton code PHP en conséquence)
Lorsque ça marchera, essaye 3 pour avoir une sctructure de programme meilleure.
Bon courage, "c'est en forgeant qu'on devient forgeron"
1. changer le nom de colonne de ta table en nomClef (mots_clé ne peut pas marher)
2. essaye de changer ta clause WHERE en WHERE motClef like '%physique%' (je te laisse le soin d'adapter ton code PHP en conséquence)
Lorsque ça marchera, essaye 3 pour avoir une sctructure de programme meilleure.
Bon courage, "c'est en forgeant qu'on devient forgeron"
Enax
Messages postés
203
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
16 mars 2010
145
13 févr. 2008 à 14:07
13 févr. 2008 à 14:07
Le principe est plutôt simple et on t'a donné tous les éléments :
1° Tu isoles chacun des mots entrés dans ton formulaire de recherche avec explode(),
2° Tu cherches les lignes de ta table qui contiennent l'un de ces mots avec la méthode fournie par croy,
3° Tu traites la réponse à ta requête SQL.
1° Tu isoles chacun des mots entrés dans ton formulaire de recherche avec explode(),
2° Tu cherches les lignes de ta table qui contiennent l'un de ces mots avec la méthode fournie par croy,
3° Tu traites la réponse à ta requête SQL.