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

  FORUM HardWare.fr
  Programmation

  [PHP + SQL] ORDER BY

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP + SQL] ORDER BY

n°60307
IvanleFou
Posté le 19-09-2001 à 14:51:39  profilanswer
 

je veux classer les lignes d'une table suivant une colonne puis une autre
 
Voici le script mais il ne marche pas. La table reste inchange
 
<?
require("sql_machine.inc.php3" );
$db = mysql_connect("$dbhost", "$dblogi", "$dbpass" ) or Die("Base Down !" );
mysql_select_db("$dbbase",$db) or Die("Base Down !" );
$req = mysql_query("SELECT * FROM $dbtabl ORDER BY id" );
?>
 
Qu'est ce qui manque ou qui ne va pas???
je commence desesperer :cry:  :cry:  :cry:  
 
Merci

mood
Publicité
Posté le 19-09-2001 à 14:51:39  profilanswer
 

n°60308
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 14:52:37  profilanswer
 

essaye avec '$dbtabl'


---------------
oui oui
n°60309
IvanleFou
Posté le 19-09-2001 à 14:53:02  profilanswer
 

en fait la ligne de requete c'est:
$req = mysql_query("SELECT * FROM $dbtabl ORDER BY id, prix" );
 
pour classer suivant 2 colonnes

n°60311
IvanleFou
Posté le 19-09-2001 à 14:54:57  profilanswer
 

art_dupond a écrit a écrit :

essaye avec '$dbtabl'  




 
Comment ca?

n°60313
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 14:56:27  profilanswer
 

$req = mysql_query("SELECT * FROM '$dbtabl' ORDER BY id" );


---------------
oui oui
n°60315
IvanleFou
Posté le 19-09-2001 à 15:00:17  profilanswer
 

art_dupond a écrit a écrit :

$req = mysql_query("SELECT * FROM '$dbtabl' ORDER BY id" );  




 
nan y se passe tjs rien
la table ne change pas

n°60334
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 15:27:06  profilanswer
 

ta table, elle s'appelle comment ?
 
tu donnes une valeur à $dbtabl ?

 

[edtdd]--Message édité par art_dupond--[/edtdd]


---------------
oui oui
n°60340
IvanleFou
Posté le 19-09-2001 à 15:35:04  profilanswer
 

la table s'appelle machine
 
voila ce qu'elle contient:
 
id  login  Qte  nb1    nb2  
12   aa     1  1100   1100  
7    bb     1   550   550  
11   bb     1   866   950  
4    cc     1   850   1002  
6    cc     2   600   616  
10   cc     2   933   1002
 
la elle est classer pas login (d'ailleurs je sais po comment j'ai fait car maintenant j'y arrive plus!?)
 
et moi je veux la classer suivant les "id" puis le "nb2"

n°60348
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 15:43:30  profilanswer
 

ben normalement  
 
mysql_query("SELECT * FROM machine ORDER BY id, nbr2 ASC" );
 
ou  
 
$tabl = "machine";
 
mysql_query("SELECT * FROM '$tabl' ORDER BY id, nbr2 ASC" );
 
 
si ca marche pas, je vois pas, sorry


---------------
oui oui
n°60352
Maxaks
Posté le 19-09-2001 à 15:47:18  profilanswer
 

Classer suivant 2 colonnes ? C sur que c possible ?
 
Si oui, la solution de art_dupont me parait juste  :hello:

mood
Publicité
Posté le 19-09-2001 à 15:47:18  profilanswer
 

n°60353
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 15:49:02  profilanswer
 

ben on peut classer suivant 2 colonnes, mais dans son cas, je crois que c'est pas utile puisque les id sont sensés etre uniques. non ?


---------------
oui oui
n°60358
IvanleFou
Posté le 19-09-2001 à 15:51:42  profilanswer
 

bpn ben je crois que j'ai plus qu'a me tirer une balle  :crazy: :gun:  
 
merci pour ton aide

n°60359
IvanleFou
Posté le 19-09-2001 à 15:53:34  profilanswer
 

ben deja j'arrive pas a classer suivant 1 colonne alors pour le moment j'ai abandonne pour les 2 colonne.
 
D'apres le manuel de mysql c possible de classer suivant plusieurs colonnes

n°60366
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 16:00:12  profilanswer
 

t'as donné le bon nom à $dbbase ?


---------------
oui oui
n°60371
IvanleFou
Posté le 19-09-2001 à 16:04:57  profilanswer
 

ben la j'ai tout vire les noms de variable
ca donne ca:
 
<?
$db = mysql_connect("localhost", "ivanlefou", "aa" );
mysql_select_db("bestofti92_db",$db);
mysql_query("SELECT * FROM machine ORDER BY id" );
?>

n°60375
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 16:10:38  profilanswer
 

tu dis que tu n'as rien. Mais tu fais quelque chose pour afficher le résultat quand meme.
 
non ?
 
 
 
genre  
<?
$db = mysql_connect("localhost", "ivanlefou", "aa" );  
mysql_select_db("bestofti92_db",$db);  
$req = mysql_query("SELECT * FROM machine ORDER BY id" );  
 
while ($brol = mysql_fetch_array($req))
{
  echo "$req["id"]<br>\n";
}
?>


---------------
oui oui
n°60381
IvanleFou
Posté le 19-09-2001 à 16:21:40  profilanswer
 

apres je vais dans phpmyadmin, je fais un refresh et j'affiche la table

n°60383
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 16:27:01  profilanswer
 

IvanleFou a écrit a écrit :

apres je vais dans phpmyadmin, je fais un refresh et j'affiche la table  




 
a mais non.
 
ton code il va rien changer dans php my admin.
 
c'est juste pour afficher sur une page internet par exemple.
 
pour classer suivant les id dans phpmyadmin (en tout cas dans les versions récentes), il suffit de cliquer sur id dans ta table


---------------
oui oui
n°60394
IvanleFou
Posté le 19-09-2001 à 16:35:54  profilanswer
 

art_dupond a écrit a écrit :

 
 
a mais non.
 
ton code il va rien changer dans php my admin.
 
c'est juste pour afficher sur une page internet par exemple.
 
pour classer suivant les id dans phpmyadmin (en tout cas dans les versions récentes), il suffit de cliquer sur id dans ta table  




 
vi mais moi je veux le faire par php car qd j'affiche ma table c po pratique si c po classe.

n°60397
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 16:39:33  profilanswer
 

si j'ai bien compris, tu veux changer l'affichage de ta table dans phpmyadmin. C'est bien ca ?
 
si tu veux faire ca, faut chipotter dans le code de phpmyadmin.
 
C'est bien ca que tu fais ?
 
Je demande ca pour être sur de comprendre ce que tu veux faire.


---------------
oui oui
n°60399
Oreste
Posté le 19-09-2001 à 16:40:02  profilanswer
 

Oui ben comme l a dit art_dupont il suffit de cliquer sur ta colonne dans phpmyadmin pour trier sinon phpmyadmin classe par ordre d entré dans la base par défaut

n°60400
IvanleFou
Posté le 19-09-2001 à 16:42:16  profilanswer
 

art_dupond a écrit a écrit :

si j'ai bien compris, tu veux changer l'affichage de ta table dans phpmyadmin. C'est bien ca ?
 
si tu veux faire ca, faut chipotter dans le code de phpmyadmin.
 
C'est bien ca que tu fais ?
 
Je demande ca pour être sur de comprendre ce que tu veux faire.  




 
nan phpmyadmin s'etait juste pour voir si le script marche.
normalement ya une autre page qui est faite pour afficher la table

n°60401
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 16:43:09  profilanswer
 

je comprends rien.
 
 
et la page qui t'affiche ta table, elle affiche quoi ?


---------------
oui oui
n°60405
laihaunet
Posté le 19-09-2001 à 16:55:47  profilanswer
 

oula...ca na rien a voir: PhpmyAdmin taffiche ce qu'il y a dans la table de ta BD. il fait juste un select sur la table.
 
Toi tu fais un autre script, une requete select aussi. Les requetes select sur une BD ne modifie en rien la structure de cette table (contrairement a Alter, Add etc..)
 
donc quand tu fais ton select, tu obtiens des resultats suivant tes criteres. ce sont ces resultats qui sont classés si tu fais un "order by". Pour voir si ca marche fais comme Art_Dupond te la dis: affiche le resulat de ta requete!
 
tu verras ca marche!

n°60453
IvanleFou
Posté le 19-09-2001 à 19:26:13  profilanswer
 

et je fais comment apres pour modifier la table pour que le nouveau classement soit enregistre?

n°60455
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 19:37:15  profilanswer
 

qu'est-ce que tu veux faire exactement ?


---------------
oui oui
n°60459
IvanleFou
Posté le 19-09-2001 à 19:49:16  profilanswer
 

bon je l'ai mis en ligne vite fait kom ca tu va comprendre:
 
www.multimania.com/bestofti92
 
ds la section machine t'as le link pour afficher la base de donnee. kom tu peux le voir elle n'est pas l'ordre (je veux la classer suivant les pseudos).
 
ds la section "ranger la table "machine"" c'est le script pour ordonner la table. Donc qd tu cliques sur sur ce link et qua'pres tu va voir la table -> ben le table devrait etre ordonne alors qu'elle ne l'es pas.
 
J'espere que se sera plus clair comme ca

n°60461
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 19:52:40  profilanswer
 

euh, je vois pas le code.
 
t'as pas oublié d'enlever les <?


---------------
oui oui
n°60462
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 19:53:50  profilanswer
 

mais normalement avec ca, ca devrait aller
 
$db = mysql_connect("localhost", "ivanlefou", "aa" );  
mysql_select_db("bestofti92_db",$db);  
$req = mysql_query("SELECT * FROM machine ORDER BY login" );


---------------
oui oui
n°60465
IvanleFou
Posté le 19-09-2001 à 20:10:36  profilanswer
 
n°60466
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 20:15:46  profilanswer
 

ben vu que tu veux ordonner suivant les logins, ben faut mettre ORDER BY login et  pas BY id...


---------------
oui oui
n°60467
IvanleFou
Posté le 19-09-2001 à 20:27:55  profilanswer
 

ca fait tjs rien

n°60469
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 20:34:12  profilanswer
 

fais voir le reste de ton code...


---------------
oui oui
n°60472
IvanleFou
Posté le 19-09-2001 à 20:44:09  profilanswer
 
n°60475
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 20:54:33  profilanswer
 

moi je ferais plutot comme ca:
 
<?
require("sql_machine.inc.php3" );
$db = mysql_connect("$dbhost", "$dblogi", "$dbpass" ) or Die("Base Down !" );  
mysql_select_db("$dbbase",$db) or Die("Base Down !" );  
$req = mysql_query("SELECT * FROM $dbtabl ORDER BY login" );  
$res = mysql_numrows($req);  
 
 
echo "<table border=\"1\">\n";
$login_db="";
 
while($myrowres = mysql_fetch_array($res))
{
 echo " <tr>\n";
if($myrowres["login"] != $login_db)
{
 echo "  <td>".$myrowres["login"]."</td>\n";
 $login_db = $myrowres["login"];  
}
else
{
 echo "  <td> </td>\n";
}
 
 echo "  <td>".$myrowres["proc"]."</td>\n";
 echo "  <td>".$myrowres["type_proc"]."</td>\n";
 echo "  <td>".$myrowres["nb_proc"]."</td>\n";
 echo "  <td>".$myrowres["freq_origine"]."</td>\n";
 echo "  <td>".$myrowres["freq_over"]."</td>\n";
 echo " </tr>\n";
}
echo "</table>\n";
?>

 

[edtdd]--Message édité par art_dupond--[/edtdd]


---------------
oui oui
n°60480
IvanleFou
Posté le 19-09-2001 à 21:10:41  profilanswer
 

Je suis en train de chercher avec un autre collegue et il est arrive a la meme conclusion que toi:
 
$req = mysql_query("SELECT * FROM $dbtabl ORDER BY login" );  
 
Et ca marche. :)  :)
merci :jap:  
 
Donc maintenant je lui ai mis le classement suivant 2 colonnes:
 
$req = mysql_query("SELECT * FROM $dbtabl ORDER BY login, freq_over" );
 
mais si tu regardes a l'url ben ca le fait po
1er classement oki
2eme y veut po
 
En fait si je rajoute freq_over apres login le classement change mais ca correspond po a ce que je veux.
je voudrais que, pour un pseudo donne, les freq apres OC soient classer par ordre croissant ou decroissant (po trop d'importance, mais qu'au moins il y est un ordre).

n°60491
art_dupond
je suis neuneu... oui oui !!
Posté le 19-09-2001 à 21:30:26  profilanswer
 

bon, voilà ce que j'ai :
 
ma table:

Code :
  1. ID  login  freq  over_freq 
  2. Modifier  Effacer   1   neuneu   1253   1515 
  3. Modifier  Effacer   2   neuneu    333   555 
  4. Modifier  Effacer   3   neuneu    579   6512 
  5. Modifier  Effacer   4   neuneu   2557   23581 
  6. Modifier  Effacer   5   arar     2234   3215 
  7. Modifier  Effacer   6   arar       12   123 
  8. Modifier  Effacer   7   zzz        12   312


 
mon code :
 
<?
$db = mysql_connect("localhost", "login","pass" );
mysql_select_db("pout",$db);
 
$req = mysql_query("SELECT * FROM machine ORDER BY login, freq ASC",$db);
 
echo "<table border=\"1\">\n";
$login_db="";
 
while($myrowres = mysql_fetch_array($req))
{
echo " <tr>\n";
if($myrowres["login"] != $login_db)
{
echo "  <td>".$myrowres["login"]."</td>\n";
$login_db = $myrowres["login"];  
}
else
{
echo "  <td> </td>\n";
}
 
echo "  <td>".$myrowres["freq"]."</td>\n";
echo "  <td>".$myrowres["freq_over"]."</td>\n";
echo " </tr>\n";
}
echo "</table>\n";
?>  
 
 
et ce qu'il m'affiche :
 

Code :
  1. arar      12   123
  2.          2234  3215
  3. neuneu   333   555
  4.           579  6512
  5.          1253  1515
  6.          2557 23581
  7. zzz       12   312

 

[edtdd]--Message édité par art_dupond--[/edtdd]


---------------
oui oui
n°60493
IvanleFou
Posté le 19-09-2001 à 21:45:11  profilanswer
 

vi maintenant c bon tout marche.
 
le pbr venait d'une mauvaise definition de la table. J'avais mis VARCHARpour les frequence au lieu de INT.
 
Merci de tout coeur tout m'a super bien aide :jap:  :jap:

mood
Publicité
Posté le   profilanswer
 


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

  [PHP + SQL] ORDER BY

 

Sujets relatifs
Javascript dans PHP : comment recuperer une variable de session ?[PHP] date de création d'un fichier
envoyer un formulaire sous forme cryptée à un script PHP, méthode ?[PHP] Bug ou alors question hyper ardu !?!
quelqu'un s'y connaît en PHP?PHP include
Inclure une image GIF dans du PDF avec PHP[PHP] Sites de modules et scripts
[SQL Server] Quel est l'équivalent du 'NuméroAuto' sous Access ?[PHP] Ecrire des formules mathématiques sur une page web
Plus de sujets relatifs à : [PHP + SQL] ORDER BY


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