Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1348 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  classer avec ORDER BY dans une base de données comment faire ....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

classer avec ORDER BY dans une base de données comment faire ....

n°131150
van_axl
Posté le 26-04-2002 à 11:55:05  profilanswer
 

Voial bon tout d'abords , je precise que je ne suis pas expert en html php et sql !! mais pour l'instant j'ai reussi a afficher ma table sous forme de tableau. Seulement la je force l'ordre avec order by a l'ouverture de la page, mais maintenant je voudrait que lorsque la personne visitera cette page elle puisse cliquer sur le nom en haut de la colonne et comme ca , ca classera toute les valeur de la table par ordre alpha de cette colonne !!  
Alors je sais pas trop comment m'y prendre est ce qu quelqu'un pourrait m'eclairer !!!  
merci d'avance !

mood
Publicité
Posté le 26-04-2002 à 11:55:05  profilanswer
 

n°131177
impulse
Posté le 26-04-2002 à 12:30:05  profilanswer
 

Je connais pas le PHP...
mais tu pourrais pas faire un truc du genre : appui sur tel bouton (ou colonne ou ce que tu veux) balance une requete du genre :
 
SELECT ...
ORDER BY nom_du_bouton
...
 
non ?
 
par contre je sais pas si c'est tres malin de faire ça... executer une requete a chaque fois c'est pas le top.
 
Tu voudrais juste que le tableau Html soit trié ? C'est ça ?
 
hihi :D

 

[jfdsdjhfuetppo]--Message édité par impulse le 26-04-2002 à 12:31:10--[/jfdsdjhfuetppo]

n°131180
impulse
Posté le 26-04-2002 à 12:36:25  profilanswer
 

Tu peux me donner le code en PHP pour faire ce que tu fais ?
Il doit y avoir une fonction order() en PHP qui devrait te permettre de faire ça tres facilement en fait... En fait je pense que ce serait un truc du genre : tu recharges la page en faisant une nouvelle table html avec des données dans un ordre different...
 
hihi :p

n°131245
van_axl
Posté le 26-04-2002 à 14:15:49  profilanswer
 

en fait le plus simple serait , deja j'affiche ma table comme ca par exemple :
NOM            Date        Commentaires
Paul           2002-04-28     aucun
Pierre         2002-04-21     aucun
 
Et donc qd j'affcihe ca je fais simplement une boucle avec :
$requete=mysql_query("SELECT * FROM ma_base" );
 while ($ligne = mysql_fetch_object($requete)) {
 print "
 
Et ce que je voudrais c'est que qd je clics sur nom, ben ca m'actualise la page mais avec les données Nom classée par ordre alphabetique.

n°131252
Sh@rdar
Ex-PhPéteur
Posté le 26-04-2002 à 14:19:10  profilanswer
 

<?
 
if (!isset($tri)) $tri = "id";
 
$Query = "SELECT patati... ORDER BY $tri";
 
?>
 
pour trier, tu fais un lien <a href="<? echo $PHP_SELF ?>?tri=cequetuveux">


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°131281
van_axl
Posté le 26-04-2002 à 14:35:24  profilanswer
 

ok thx, je vais essayer avec ca !

n°131331
van_axl
Posté le 26-04-2002 à 15:12:41  profilanswer
 

voici le code !!
j'ai editer ce message en me trompant donc j'ai resumer le texte que j'avais ecrit comme ca !!
 
<a href="<? echo $PHP_SELF ?>?tri=Date">trier par date</a>
<a href="<? echo $PHP_SELF ?>?tri=Nom">trier par nom</a>
   
<table border="1">
  <tr bgcolor="#DDDDDD">
   <td><b><a href="Nom du Client"</b></td>
   <td><b>Date</b></td>
   <td><b>Commentaires</b></td>
  </tr>
<?php
 
 
if (!isset($tri)) $tri = "id";
 
$Query = "SELECT * from  ma_DB ORDER BY $tri";
 
 
 
 
 mysql_connect("localhost","root","" );
 mysql_selectdb("MA_DB" ) or die("Connexion ratée" );
 $requete=mysql_query("SELECT * from ma_table" );
 while ($ligne = mysql_fetch_object($requete)) {
 print "
<tr>
<td>$ligne->Nom</td>
<td>$ligne->Date</td>
<td>$ligne->Commentaires</td>
</tr>";  
 }
?>

 

[jfdsdjhfuetppo]--Message édité par van_axl le 29-04-2002 à 12:24:07--[/jfdsdjhfuetppo]

n°131445
Sh@rdar
Ex-PhPéteur
Posté le 26-04-2002 à 17:16:02  profilanswer
 

if(!isset($tri)) $tri="id";
 
ça veut dire : si la variable tri n'est pas initialisée, lui affecter la valeur "id"
 
donc tu mets ton tri par défaut à la place histoire que quand on charge la page pour la première fois le tri soit fait.
 
ensuite le lien change la valeur de $tri donc change le ORDER BY de ta requête.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°132154
van_axl
Posté le 29-04-2002 à 12:23:07  profilanswer
 

bon je reviens a la charge !! ce we j'ai pas eu le temps de bosser dessus.
Alors donc le code ne marche pas !!!
Dois je mettre par exemple Date a la place de "id" dans mon if .
sinon qd je clique sur mon lien trier par ou par date ca fait pas grand chose !!
un peu d'aide please
 
<a href="<? echo $PHP_SELF ?>?tri=Date">trier par date</a>
<a href="<? echo $PHP_SELF ?>?tri=Nom">trier par nom</a>
   
<table border="1">
  <tr bgcolor="#DDDDDD">
   <td><b><a href="Nom du Client"</b></td>
   <td><b>Date</b></td>
   <td><b>Commentaires</b></td>
  </tr>
<?php
 
 
if (!isset($tri)) $tri = "id";
 
$Query = "SELECT * from  ma_DB ORDER BY $tri";
 
 
 
 
 mysql_connect("localhost","root","" );
 mysql_selectdb("MA_DB" ) or die("Connexion ratée" );
 $requete=mysql_query("SELECT * from ma_table" );
 while ($ligne = mysql_fetch_object($requete)) {
 print "
<tr>
<td>$ligne->Nom</td>
<td>$ligne->Date</td>
<td>$ligne->Commentaires</td>
</tr>";  
 }
?>

n°132220
Sh@rdar
Ex-PhPéteur
Posté le 29-04-2002 à 14:41:12  profilanswer
 

si y a pas de tri dans ta requête, je vois mal comment le fait de changer la valeur de $tri va modifier quoi que se soit..
 
 
le code que je t'ai donné n'est qu'une partie de la solution, en la recopiant sans chercher plus loin tu va pas y arriver, creuse encore un peu le problème est vraiment sous ton nez (par exemple regarde bien la requête SQL exécutée, tu trouve pas qu'elle est bizzarre ?)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
mood
Publicité
Posté le 29-04-2002 à 14:41:12  profilanswer
 

n°132248
van_axl
Posté le 29-04-2002 à 15:15:12  profilanswer
 

mais le truc c'est que j'ai essayer justement de bidouiller  seulement ca m'amenne null part, donc j'etais revenu en arriere (alt+z)!  
j'ai essayer ca ce qui me semblait un plus correct !! mais il me met cette erreur :
Warning: Supplied argument is not a valid MySQL result resource  
 
donc je tournais un peu en rond ...
 
if (!isset($tri)) $tri = "id";  
 
$Query = "SELECT * from  MA_DB ORDER BY $tri";  
 
mysql_connect("localhost","root","" );  
//mysql_selectdb("MA_DB" ) or die("Connexion ratée" );  
//$requete=mysql_query("SELECT * from ma_table" );  
while ($ligne = mysql_fetch_object($Query)) {

n°132281
Sh@rdar
Ex-PhPéteur
Posté le 29-04-2002 à 15:45:58  profilanswer
 

essayes de traduire en français ton code :
 
 
connexion mysql;
selection de la BDD;
 
assignation de la chaine "SELECT ..." à la variable $Query
 
récupération de résultat de la requête $Query !!!! et là blam, erreur
 
normal, $Query n'est pas une requête, c'est une chaine , il faut faire mysql_query($Query) pour l'éxécuter


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°132302
van_axl
Posté le 29-04-2002 à 16:07:00  profilanswer
 

kler  !! autant pour moi ,j'avais vraiment pas fait gaf a ca !!
Bon j'ai donc modifier cette ligne de while , mais now qd j'affiche ma page il reflechi une trentaine de sec puis m'affiche en boucle ma premiere entrée dans ma base !! et me met :
Fatal error: Maximum execution time of 30 seconds exceeded
genre il fait le while .... print   sans s'arreter !!  
Il faut uttiliser une autre facon d'afficher le resultat ??
 
merci pour ton aide

n°132410
Sh@rdar
Ex-PhPéteur
Posté le 29-04-2002 à 18:08:17  profilanswer
 

bon, un conseil : commence par le commencement un bon tuto d'algo et quelques hello world avant les bases de données ça te donnera de meilleurs bases niveau php.
 
Comme ça me prend plus de temps de t'expliquer que de te filer le code, je vais le faire, désolé :
 
<a href="<? echo $PHP_SELF ?>?tri=Date">trier par date</a>  
<a href="<? echo $PHP_SELF ?>?tri=Nom">trier par nom</a>  
   
<table border="1">  
 <tr bgcolor="#DDDDDD">  
  <td><b><a href="Nom du Client"</b></td>  
  <td><b>Date</b></td>  
  <td><b>Commentaires</b></td>  
 </tr>  
<?php  
 
 
if (!isset($tri)) {
  $tri = "id";
}
 
mysql_connect("localhost","root","" );  
mysql_select_db("MA_DB" ) or die("Connexion ratée" );  
 
$requete = mysql_query("$Query = "SELECT Nom,Date,Commentaires from  nomdelatable ORDER BY $tri" );  
while ($ligne = mysql_fetch_object($requete)) {  
print "  
<tr>  
<td>$ligne->Nom</td>  
<td>$ligne->Date</td>  
<td>$ligne->Commentaires</td>  
</tr>";    
}  
?>


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°132552
van_axl
Posté le 30-04-2002 à 09:53:17  profilanswer
 

Ecoute merci et désolé de t'avoir fait perdre ton temps, j'ai effectivement été un peu trop ambitieux car ca fait seulement quelques jours que je fais du php.
Par contre c'est vrai que vu la puissance et la multitude de possibilité qu'offre le php il est difficile de ne pas etre gourmand.
Mais bon ce que tu m'as donnée a l'air de fonctionner je vais juste regarder pourquoi j'avais une boucle sur ma premiere entree !! Que je puisse en tirer une conclusion qd meme !!
En tout cas merci à toi .

 

[jfdsdjhfuetppo]--Message édité par van_axl le 30-04-2002 à 11:10:45--[/jfdsdjhfuetppo]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  classer avec ORDER BY dans une base de données comment faire ....

 

Sujets relatifs
Qui utilises la base SQL de free et peux m'aider ? Je débuteActualisation de pages HTML depuis des données Access
[C++ + XML] Recuperer les donnees dans une struc ?Un script pour recréer une base RPM (à partir des fichiers) ?
[Java / Servlets] connexion à une base de donnéesPb de recuperation de données sous Oracle Portal
Gestion de données en Visual BasicTransférer une base Access vers MySQL ?
VB6 Coment faire apparaitre une donné de la base de registre windows 
Plus de sujets relatifs à : classer avec ORDER BY dans une base de données comment faire ....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR