Tri sans répétition en php/mysql
Dernière réponse : dans Programmation
Salut,
Je rencontre un petit souci (blocage !) pour coder une fonction php. Par ex, imaginons ma base de données, avec un champ "catégorie" me permettant de définir une catégorie d'appartenance aux données stockées dans cette base. Il y aura par ex : 3 données de la catégorie 1, 7 de la catégorie 2 et 12 de la catégorie 3.
Ce que je voudrais, c'est faire un menu déroulant listant mes 3 catégories, mais sans répéter 3 fois la catégorie 1, 7 fois la 2 et 12 dois la 3...
Or mes compétences en php étant limitées, je ne vois pas comment m'en sortir en partant de ce code :
Merci de votre aide
Je rencontre un petit souci (blocage !) pour coder une fonction php. Par ex, imaginons ma base de données, avec un champ "catégorie" me permettant de définir une catégorie d'appartenance aux données stockées dans cette base. Il y aura par ex : 3 données de la catégorie 1, 7 de la catégorie 2 et 12 de la catégorie 3.
Ce que je voudrais, c'est faire un menu déroulant listant mes 3 catégories, mais sans répéter 3 fois la catégorie 1, 7 fois la 2 et 12 dois la 3...
Or mes compétences en php étant limitées, je ne vois pas comment m'en sortir en partant de ce code :
<?php
$retour = mysql_query('SELECT categorie FROM lien ORDER BY categorie');
while ($donnees = mysql_fetch_array($retour))
{
echo '<option value="' . $donnees['categorie'] . '">' . $donnees['categorie'] . '</option>';
}
?>
Merci de votre aide
Autres pages sur : tri repetition php mysql
Lassé par la pub ? Créez un compte
Dis marsien, tu l'as devant le nez sans le voir depuis combien de temps ?Sinon, tu souhaites peut-être quand même trier tes données. Tu as deux possiblités, dont celle de boubpopsyteam :
SELECT categorie FROM lien GROUP BY categorie ORDER BY categorie
SELECT DISTINCT categorie FROM lien ORDER BY categorie
Enjoy!
Edit: Ah bas grilled.
Shino-Genin a dit :
Merci Boub, c'est exactement ce que je voulais faire
Ce qui me rassure, c'est que je ne connaissais effectivement pas cette fonction ; ce qui me fait peur, c'est d'imaginer tout ce que je ne sais pas encore
C'est la question essentielle : il ne faut pas se demander si on peu le faire, mais plutôt comment
.. C'est vrai que cette exploration peut parfois paraître abyssale au premier abord, mais c'est comme explorer les limites des infinis : ça reste toujours très relatif..Shino-Genin a dit :
PS : j'ai un gros nez qui me masque la vue
Ah ? Je ne suis pas seul ?
Salut à vous,
Vos réponses mon beaucoup aidé pour mon projet, mais je bloque à nouveau pourriez vous m'aider?
Je cherche tout comme marsien à trier sans répétition mais je voudrais en plus compter le nombres de répetitions.
Voici le code que j'ai modifier de maniere à compter les répetitions mais il ne compte que la repetition du premier champ.
Le code :
la table mysql :
clients
nom | prenom | code_postal
nom1 | prenom1 | cp1
nom2 | prenom2 | cp1
nom3 | prenom3 | cp2
nom3 | prenom3 | cp3
et ca me donne :
cp1 : 2
cp2 : 2
cp3 : 2
Merci par avance pour votre aide et bonne vacances si c'est votre cas
Vos réponses mon beaucoup aidé pour mon projet, mais je bloque à nouveau pourriez vous m'aider?
Je cherche tout comme marsien à trier sans répétition mais je voudrais en plus compter le nombres de répetitions.
Voici le code que j'ai modifier de maniere à compter les répetitions mais il ne compte que la repetition du premier champ.
Le code :
<?
$SQL = "SELECT code_postal FROM clients GROUP BY code_postal";
$result = mysql_query($SQL) or die("La requête $SQL a échoué : ".mysql_error());
$rep = mysql_num_rows($result);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
printf("%s : %s <br>", $row["code_postal"], $rep);
}
?>
la table mysql :
clients
nom | prenom | code_postal
nom1 | prenom1 | cp1
nom2 | prenom2 | cp1
nom3 | prenom3 | cp2
nom3 | prenom3 | cp3
et ca me donne :
cp1 : 2
cp2 : 2
cp3 : 2
Merci par avance pour votre aide et bonne vacances si c'est votre cas
bonjour,
je me suis mis depuis peu a php (enfin peut être que c un peu pousser de dire ca :s ) j'arrive a gérer un peu ma base de donnée difficilement et en faisant de longue recherche sur le net mais la je but un peu . snif
voila mon pb qui semble être grosso gentil modérateur le meme que celui de depart .
je suis en train de faire mon port folio et ca me soul de créer des pages à chaque fois alors pour faire mon cv j'ai créer une BD . je voudrais lors de l'appel de ma base de donnée trier les différents éléments de mon cv en fonction de leur type qui n'est identifier que dans la bd .
en gros si je créer une cat dans la bd je veux la voir apparaitre dans mon listing :
realisation portrait :
. rea 1
. rea 2
. rea 3
realisation carte postal
. rea 1
. rea 2
. rea 3
realisation bidule
. rea 1
. rea 2
. rea 3
... et ainsi de suite. j'ai donc essayer différente variable et fonction mais je pense que ca dois etre plus poussé que se que je pensais
j'ai essayer la fonction group by mais ce que ça me donne c uniquement les premières ligne de chaque cat.
realisation portrait :
. rea 1
realisation carte postal
. rea 1
realisation bidule
. rea 1
voila le bout de code que j'ai tenté (je sais que c un peu simpliste mais je pensais que cela fonctionnerais :
merci d'avance pour votre aide
je me suis mis depuis peu a php (enfin peut être que c un peu pousser de dire ca :s ) j'arrive a gérer un peu ma base de donnée difficilement et en faisant de longue recherche sur le net mais la je but un peu . snif
voila mon pb qui semble être grosso gentil modérateur le meme que celui de depart .
je suis en train de faire mon port folio et ca me soul de créer des pages à chaque fois alors pour faire mon cv j'ai créer une BD . je voudrais lors de l'appel de ma base de donnée trier les différents éléments de mon cv en fonction de leur type qui n'est identifier que dans la bd .
en gros si je créer une cat dans la bd je veux la voir apparaitre dans mon listing :
realisation portrait :
. rea 1
. rea 2
. rea 3
realisation carte postal
. rea 1
. rea 2
. rea 3
realisation bidule
. rea 1
. rea 2
. rea 3
... et ainsi de suite. j'ai donc essayer différente variable et fonction mais je pense que ca dois etre plus poussé que se que je pensais
j'ai essayer la fonction group by mais ce que ça me donne c uniquement les premières ligne de chaque cat.
realisation portrait :
. rea 1
realisation carte postal
. rea 1
realisation bidule
. rea 1
voila le bout de code que j'ai tenté (je sais que c un peu simpliste mais je pensais que cela fonctionnerais :
<?php
$requete="select * FROM CV GROUP BY categorie ";
$result=mysql_query($requete);
while ($row=mysql_fetch_array($result))
{
?>
<h3><?php echo $row['categorie']; ?> </h3>
<?php echo $row['date']; ?> <?php echo $row['titre']; ?>
<br/>
<?php
}echo mysql_error()
?>
merci d'avance pour votre aide
Lassé par la pub ? Créez un compte