Problème de trie avec mysql!

francois59510 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
sheik54 Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention  
 
Merci sa marche!! :)
et merci pour ta rapidité
0
francois59510 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   11
 
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