Problème de trie avec mysql!

Fermé
francois59510 Messages postés 18 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 11 juin 2011 - 24 avril 2011 à 15:34
sheik54 Messages postés 76 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 29 avril 2011 - 24 avril 2011 à 17:17
Bonjour, je possède une base de donné mysql avec des mots appartenant chacun a une catégories le problème et que lorsque je veux afficher seulement les catégorie il me met plusieurs fois les mêmes, je cherche une solution pour n'afficher qu'une fois chaque catégories merci! :)

voici mon script si sa peut vous aider:

$req = $bdd->query('SELECT categories FROM voc_anglais_essentiel');

while( $donnees = $req->fetch())
{
?>
<a href="anglais_voc_essentiel_an.php?categories=<?php echo $donnees['categories']; ?>"><?php echo $donnees['categories']; ?></a><br />
<?php
}
$req->closeCursor();




4 réponses

sheik54 Messages postés 76 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 29 avril 2011 11
Modifié par sheik54 le 24/04/2011 à 15:59
Bonjour,

Remplace ton code par celui-là :

$req = $bdd->query('SELECT DISTINCT categories FROM voc_anglais_essentiel'); 
while ($donnees = $req->fetch()) { 
     echo '<a href="anglais_voc_essentiel_an.php?categories='.$donnees['categories'].'">'.$donnees['categories'].'</a><br /> 
} 
$req->closeCursor();


J'ai fais plusieurs modifications dans ton code de base.
- ajout du mot-clef "DISTINCT" qui permet de ne pas avoir de doublons dans les résultats de requêtes SQL.
- Compilation du code dans la boucle. Ca évite de fermer et ouvrir les balises sans arrêt et ca fais surtout plus propre.

Après, si fais avec un language qui gère bien PDO tu devrais pouvoir faire ça plus facilement tel que :
foreach($bdd->query('SELECT DISTINCT categories FROM voc_anglais_essentiel;') as $donnees)
					{
     echo '<a href="anglais_voc_essentiel_an.php?categories='.$donnees['categories'].'">'.$donnees['categories'].'</a><br /> 
} 
$req->closeCursor();
1
francois59510 Messages postés 18 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 11 juin 2011
24 avril 2011 à 15:57
Merci sa marche!! :)
et merci pour ta rapidité
0
francois59510 Messages postés 18 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 11 juin 2011
24 avril 2011 à 16:18
j'ai plus dure, j'aimerai savoir comment faire pour choisir un nombre aux hasard dans les mot de la catégories envoyé par l'url, si vous ne comprenez pas voici mon script :
// cherche le nombre aux hasard
$resultatRequete= $bdd->query('SELECT count(*) AS nbMot FROM voc_anglais_essentiel WHERE categories=\'' . $_GET['categories'] . '\'');
$uneLigne = $resultatRequete ->fetch();
$nbMotStocke = $uneLigne['nbMot'];
$nombreAuHasard= mt_rand(je ne sais pas ce qu'il faut mettre la ^^);

$resultatRequete->closeCursor();
0
sheik54 Messages postés 76 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 29 avril 2011 11
Modifié par sheik54 le 24/04/2011 à 17:48
Pour tout les mots de toutes les catégories (en PHP avec PDO) :

$res = $bdd->query('SELECT mot FROM voc_anglais_essentiel;'); 
$result=$res->fetchAll(PDO::FETCH_COLUMN, 0); 
echo  $result[array_rand($result)]; 
0