[PHP/MySQL] Parser le résultat d'une BDD
5 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- Msieurduss
- Nouveau WRInaute
- Messages: 11
- Inscription: Mar Mai 30, 2006 16:30
[PHP/MySQL] Parser le résultat d'une BDD
Bonjour à tous !
Voilà, j'ai une base de données avec, dedans, un champ "theme". Parfois, ce champ contient plusieurs mots. Les thèmes sont classés comme suit : theme1,theme2,theme3,... etc.
Je précise bien qu'ils sont comme cela dans la base...
Je voudrais les extraire et en faire une liste sur une page. S'il n'y avait qu'un seul thème à chaque fois, ça ne poserait aucun souci ! Mais là, je voudrais non seulement qu'il me les sépare s'il y en a plusieurs dans un même champ, et en plus qu'il ne me les répète pas (si par exemple j'ai un champ Theme1,Theme2 et un autre champ Theme2, j'aimerais qu'il ne me répète pas ce dernier puisqu'il est présent dans Theme1,Theme2).
Je ne sais pas du tout comment m'y prendre... J'ai bien essayé quelques petites manipulations avec les fonctions ereg (pour vérifier s'il y a ou non une virgule), explode pour parser le résultat... Mais rien à faire, je n'obtiens pas ce que je veux
.
Voici le code que j'ai bricolé, mais j'ai l'impression que je ne m'y prends pas du tout comme il faut
Merci d'avance !!
Voilà, j'ai une base de données avec, dedans, un champ "theme". Parfois, ce champ contient plusieurs mots. Les thèmes sont classés comme suit : theme1,theme2,theme3,... etc.
Je précise bien qu'ils sont comme cela dans la base...
Je voudrais les extraire et en faire une liste sur une page. S'il n'y avait qu'un seul thème à chaque fois, ça ne poserait aucun souci ! Mais là, je voudrais non seulement qu'il me les sépare s'il y en a plusieurs dans un même champ, et en plus qu'il ne me les répète pas (si par exemple j'ai un champ Theme1,Theme2 et un autre champ Theme2, j'aimerais qu'il ne me répète pas ce dernier puisqu'il est présent dans Theme1,Theme2).
Je ne sais pas du tout comment m'y prendre... J'ai bien essayé quelques petites manipulations avec les fonctions ereg (pour vérifier s'il y a ou non une virgule), explode pour parser le résultat... Mais rien à faire, je n'obtiens pas ce que je veux
Voici le code que j'ai bricolé, mais j'ai l'impression que je ne m'y prends pas du tout comme il faut
- Code: Tout sélectionner
$req=mysql_query("SELECT DISTINCT theme FROM table ORDER BY theme") or die ("Erreur de connexion a la BDD : ".mysql_error());
echo "<ul>";
$j=0;
while ($resultat=mysql_fetch_array($req)) {
$string[$j]=ereg(",",$resultat["theme"]);
if ($string[$j]) {
$resultat["theme"]=explode(",",$resultat["theme"]);
$i=0;
while($resultat["theme"][$i]) {
echo "<li><a href='carte.php?theme=".$resultat["theme"][$i]."'>".$resultat["theme"][$i]."</a></li>";
$i++;
}
} else {
echo "<li><a href='carte.php?theme=".$resultat["theme"][$i]."'>".$resultat["theme"][$i]."</a></li>";
}
}
echo "</ul>";
Merci d'avance !!
- Msieurduss
- Nouveau WRInaute
- Messages: 11
- Inscription: Mar Mai 30, 2006 16:30
Personne ne sait m'aider
?
- Msieurduss
- Nouveau WRInaute
- Messages: 11
- Inscription: Mar Mai 30, 2006 16:30
Merci pour ta réponse
!
Alors, en faisant un test (avec un seul tableau, sans base de données pour commencer) avec ceci :
J'obtiens effectivement ce que je veux.
Sauf que j'ai droit à un "Notice: Undefined offset: 5 in c:\program files\easyphp1-8\www\api googlemap\test.php on line 29" (normal me direz-vous
).
Je ne vois pas comment ne pas l'avoir... Comment écrire la même chose avec foreach ?
(le code suivant ne me renvoie que la première entrée du tableau :
Edit : en rajoutant un "isset" devant ma variable, dans le while, ça marche... Mouais, mais j'ai pas l'impression de faire les choses proprement
je suis toujours ouvert à tout éclairage de PHP possible 
Alors, en faisant un test (avec un seul tableau, sans base de données pour commencer) avec ceci :
- Code: Tout sélectionner
$var="theme1,theme2,theme3,theme4,theme1";
$var=explode(",",$var);
$tabl=array();
$i=0;
while ($var[$i]) {
if (!in_array($var[$i],$tabl)) {
array_push($tabl,$var[$i]);
echo $var[$i];
}
$i++;
}
J'obtiens effectivement ce que je veux.
Sauf que j'ai droit à un "Notice: Undefined offset: 5 in c:\program files\easyphp1-8\www\api googlemap\test.php on line 29" (normal me direz-vous
Je ne vois pas comment ne pas l'avoir... Comment écrire la même chose avec foreach ?
(le code suivant ne me renvoie que la première entrée du tableau :
- Code: Tout sélectionner
foreach ($var as $value) {
if (!in_array($var,$tabl)) {
array_push($tabl,$var);
echo $value;
}
$i++;
}
Edit : en rajoutant un "isset" devant ma variable, dans le while, ça marche... Mouais, mais j'ai pas l'impression de faire les choses proprement
moi je ferai
$data1="theme1,theme2,theme3";
$data2="theme5,theme2";
$tab_of_themes = array_unique(array_merge(explode(',',$data1),explode(',',$data2)));
Normalement c'est juste mais ca depend de comment tu traite les données ensuite.
$data1="theme1,theme2,theme3";
$data2="theme5,theme2";
$tab_of_themes = array_unique(array_merge(explode(',',$data1),explode(',',$data2)));
Normalement c'est juste mais ca depend de comment tu traite les données ensuite.
5 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google dépose 2 brevets pour AdSense
- Gestion des langues et des sessions en PHP / MySQL
- Répartition des clics sur les 10 premiers résultats Google
- Suivi du regard : analyse des résultats de Google
- Brevet de Google sur le contenu dupliqué
- Un brevet de Google pour de la publicité sur les téléphones mobiles
- Passage à l'heure d'été/hiver sur un forum phpBB
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Les mini-sitelinks de Google
- Sortie officielle de GoogleStats v2.0 !
Consultez la description détaillée des produits ou services de Google suivants : Google Whack
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum