Tri de donnée MYSQL
Fermé
falcor
Messages postés
61
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
26 mai 2009
-
15 mai 2008 à 09:33
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 15 mai 2008 à 15:54
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 15 mai 2008 à 15:54
A voir également:
- Tri de donnée MYSQL
- Tri excel - Guide
- Mysql community server - Télécharger - Bases de données
- Logiciel de tri de photos - Guide
- Reinstaller windows sans perte de données - Guide
- Peut on récupérer un colis au centre de tri chronopost - Forum Mobile
4 réponses
ygalr22
Messages postés
23
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
24 septembre 2008
2
15 mai 2008 à 15:10
15 mai 2008 à 15:10
Tu as essayé comme ca?
$strSQL = 'SELECT `Id_page`, `Titre`
FROM `pages`
WHERE `Id_parent` = '.$idpage
ORDER BY `Id_page` ASC;
ASC-> Ordre croissant
DESC -> Ordere Décroissant
$strSQL = 'SELECT `Id_page`, `Titre`
FROM `pages`
WHERE `Id_parent` = '.$idpage
ORDER BY `Id_page` ASC;
ASC-> Ordre croissant
DESC -> Ordere Décroissant
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 mai 2008 à 15:12
15 mai 2008 à 15:12
t'as sélectionné que Id_page et titre, mais tu fais un tri via Id_parent, il faut que tu le mettes dans ta requête celui ci aussi
falcor
Messages postés
61
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
26 mai 2009
2
15 mai 2008 à 15:43
15 mai 2008 à 15:43
Merci pour vos réponses.
J’ai testé les deux solutions.
Celle de Ygalr22 me donne une erreur.
Même en rajoutant dans ma sélection Id_parent l’affichage de mes menus sur mon index.php (menu et sous menu) cela m’affiche touts les liens en même temps sur les deux menus et dans un ordre tout sauf trié.
----------------------------------------------
function affiche_menu($idpage) {
// Sélectionne toutes les pages filles de la page en cours
$strSQL = 'SELECT `Id_page`, `Titre`, `Id_parent` FROM `pages` WHERE `Id_parent` ORDER BY `Id_page` = '.$idpage ;
$resultat = requete_SQL($strSQL);
// Si la page n'a pas de page fille, alors on modifie la requète pour obtenir ses pages soeurs.
if (mysql_num_rows($resultat) == 0) {
$strSQL = 'SELECT `Id_page`, `Titre`, `Id_parent` FROM `pages` WHERE `Id_parent` ORDER BY `Id_page` = '.$_ENV['id_parent'];
$resultat = requete_SQL($strSQL);
}
.......
_______________________________________
Si je mets pas ORDER BY tout fonctionne sauf qu’évidemment mes liens ne sont pas dans l’ordre voulu.
Mon index.php
$id_page_accueil = 1;
// Si non défini, on considère que la page est la page d'accueil
if (isset($_GET['id_page'])) {
$_ENV['id_page'] = intval($_GET['id_page']);
} else {
$_ENV['id_page'] = $id_page_accueil;
}
<div id="menu_horizontal">
<?php
// Affiche le menu 'racine' => id de la page = id de la page d'accueil = 1
echo affiche_menu($id_page_accueil);
?>
</div>
<div id="menu_vertical">
<?php
// Affiche le menu en cours => id de la page = id de la page en cours.
if ($_ENV['niveaux'] > 0)
{
echo affiche_menu($_ENV['id_page']);
}
?>
</div>
________________________________________
Encore merci pour le coup de pouce
J’ai testé les deux solutions.
Celle de Ygalr22 me donne une erreur.
Même en rajoutant dans ma sélection Id_parent l’affichage de mes menus sur mon index.php (menu et sous menu) cela m’affiche touts les liens en même temps sur les deux menus et dans un ordre tout sauf trié.
----------------------------------------------
function affiche_menu($idpage) {
// Sélectionne toutes les pages filles de la page en cours
$strSQL = 'SELECT `Id_page`, `Titre`, `Id_parent` FROM `pages` WHERE `Id_parent` ORDER BY `Id_page` = '.$idpage ;
$resultat = requete_SQL($strSQL);
// Si la page n'a pas de page fille, alors on modifie la requète pour obtenir ses pages soeurs.
if (mysql_num_rows($resultat) == 0) {
$strSQL = 'SELECT `Id_page`, `Titre`, `Id_parent` FROM `pages` WHERE `Id_parent` ORDER BY `Id_page` = '.$_ENV['id_parent'];
$resultat = requete_SQL($strSQL);
}
.......
_______________________________________
Si je mets pas ORDER BY tout fonctionne sauf qu’évidemment mes liens ne sont pas dans l’ordre voulu.
Mon index.php
$id_page_accueil = 1;
// Si non défini, on considère que la page est la page d'accueil
if (isset($_GET['id_page'])) {
$_ENV['id_page'] = intval($_GET['id_page']);
} else {
$_ENV['id_page'] = $id_page_accueil;
}
<div id="menu_horizontal">
<?php
// Affiche le menu 'racine' => id de la page = id de la page d'accueil = 1
echo affiche_menu($id_page_accueil);
?>
</div>
<div id="menu_vertical">
<?php
// Affiche le menu en cours => id de la page = id de la page en cours.
if ($_ENV['niveaux'] > 0)
{
echo affiche_menu($_ENV['id_page']);
}
?>
</div>
________________________________________
Encore merci pour le coup de pouce
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 mai 2008 à 15:54
15 mai 2008 à 15:54
Where te permet de faire des comparaisons pour savoir quoi sélectionner ;) et order by te dit à partir de quel champ tu peux les trier, donc en principe tu fais pas de comparaisons dans order by, mais que dans where.
$strSQL = "SELECT Id_page, Titre, Id_parent FROM pages ORDER BY Id_page ASC " ;
== "sélectionner les id des pages, leur titre, et les id parents, de la table page, les trier en fonction des id pages dans un order croissant"
Je comprends pas très bien l'organisation de tes tables en fait ^o) ceci dit à ce que j'en capte, le where te permet de faire une sélection plus précise, mais pour qu'il fonctionne bien, fait une comparaison^^
$strSQL = "SELECT Id_page, Titre, Id_parent FROM pages ORDER BY Id_page ASC " ;
== "sélectionner les id des pages, leur titre, et les id parents, de la table page, les trier en fonction des id pages dans un order croissant"
Je comprends pas très bien l'organisation de tes tables en fait ^o) ceci dit à ce que j'en capte, le where te permet de faire une sélection plus précise, mais pour qu'il fonctionne bien, fait une comparaison^^