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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Débutant php/sql] Trier les données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Débutant php/sql] Trier les données

n°1105477
chezwam
Eul' Fricadelle c'est bon !
Posté le 02-06-2005 à 15:10:51  profilanswer
 

Bonjour @ tous,
 
Je début en php/sql et malgrès plusieurs tentative je lutte pour afficher lmon tableau selon des critères de chaque colonne.
 
Donc je me suis fait une tablea comme ceci :

Code :
  1. CREATE TABLE listing(
  2.   id int(5) NOT NULL auto_increment,
  3.   pseudo text NOT NULL,
  4.   nom text NOT NULL,
  5.   prenom text NOT NULL,
  6.   email text NOT NULL,
  7.   numtel text default NULL,
  8.   agglo text NOT NULL,
  9.   departement text NOT NULL,
  10.   UNIQUE KEY id (id)
  11. ) TYPE=MyISAM;


 
J'ai un fichier sqlconf.php avec :

Code :
  1. <? $sqlserver = 'xxxx'; $login = 'xxx'; $password = 'xxxx'; $sqlbase = 'xxxx'; ?>


 
Puis pour afficher le tout j'ai une page index.php

Code :
  1. <?
  2. function debug($ch) {
  3.    global $debug;
  4.    if ($debug)
  5.       echo $ch;
  6. }
  7. function personne_line($enregistrement) {
  8.   echo "<!-- PERSONNE -->\n";
  9.   echo "<TR>\n";
  10.   echo "<TD>" . $enregistrement['id'] . "</TD>\n";
  11.   echo "<TD>" . $enregistrement['pseudo'] . "</TD>\n";
  12.   echo "<TD>" . $enregistrement['nom'] . "</TD>\n";
  13.   echo "<TD>" . $enregistrement['prenom'] . "</TD>\n";
  14.   echo "<TD><A HREF=\"" . $enregistrement['email'] . "\">" . $enregistrement['email'] . "</A></TD>\n";
  15.   echo "<TD>" . $enregistrement['numtel'] . "</TD>\n";
  16.   echo "<TD>" . $enregistrement['agglo'] . "</TD>\n";
  17.   echo "<TD>" . $enregistrement['departement'] . "</TD>\n";
  18.   echo "</TR>\n";
  19.   echo "<!-- /PERSONNE -->\n";
  20. }
  21. function personne_list ($resultat) {
  22. echo "<TABLE width=\"235\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" bgcolor=\"#446D8B\">";
  23. echo "        <TR> ";
  24. echo "         <TD><B><FONT size=\"2\" face=\"Arial, Helvetica, sans-serif\" color=\"#FFFFFF\"> Liste des personnes :</FONT></B></TD>";
  25. echo "        </TR>";
  26. echo "      </TABLE>";
  27. echo "      <BR>";
  28. echo "<TABLE>";
  29. echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=id&order=ASC\">Id</A></TH>\n";
  30.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=pseudo&order=ASC\">Pseudo</A></TH>\n";
  31.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=nom&order=ASC\">Nom</A></TH>\n";
  32.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=prenom&order=ASC\">Prenom</A></TH>\n";
  33.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=email&order=ASC\">Email</A></TH>\n";
  34.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=numtel&order=ASC\">Numeros de Tel</A></TH>\n";
  35.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=agglo&order=ASC\">Agglomeration</A></TH>\n";
  36.   echo "<TH><A HREF=\"" . $_SERVER['SCRIPT_NAME'] . "?criteria=departement&order=ASC\">Département</A></TH>\n";
  37. while( $enregistrement = mysql_fetch_array( $resultat ))
  38.   {
  39.     personne_line($enregistrement);
  40.   }
  41. echo "</TABLE>";
  42. }
  43. ?>
  44. <HTML><HEAD>
  45. <TITLE>Listing</TITLE>
  46. </HEAD>
  47. <BODY>
  48. <CENTER>
  49. <H1>- Listing des personnes -</H1>
  50. </CENTER><BR>
  51. <?
  52. $debug = true;
  53. require('sqlconf.php');
  54. // Connexion au serveur MySQL
  55. @mysql_connect( $sqlserver , $login , $password )
  56. or die( 'Connexion au serveur [<FONT COLOR=RED>Impossible</FONT> ]' ) ;
  57. debug('Connexion au serveur [ <FONT COLOR=GREEN>OK</FONT> ]<BR>');
  58.                                            
  59. // Sélection de la base de données
  60. @mysql_select_db( $sqlbase )
  61. or die( 'Sélection de la base de donnée [<FONT COLOR=RED>Impossible</FONT> ]' ) ;
  62. debug('Connexion à la base de donnée  [ <FONT COLOR=GREEN>OK</FONT> ]<BR>');
  63. if (!isset($criteria)) $criteria='id';
  64. if (!isset($order)) $order='ASC';
  65. $requete = 'SELECT id,pseudo,nom,prenom,email,numtel,agglo,departement FROM listing ORDER BY `' . $criteria . '` ' . $order . ' ';
  66. debug($requete . "<BR>\n" );
  67. $resultat = mysql_query( $requete );
  68. debug('Enregistrements dans la table <i>listing</i> [ <FONT COLOR=GREEN>' . mysql_num_rows( $resultat ) . '</FONT> ]<BR><BR>');
  69. debug('Critère de tri: ' . $criteria . "<BR>\n" );
  70. debug('Critère d\'ordre: ' . $order . "<BR><BR>\n" );
  71. personne_list($resultat);
  72. ?>
  73.  
  74. </BODY>
  75. </HTML>


 
Normalement en cliquant sur l'intitulé de chaque colonne ça devrait changer le critère de tri mais ça ne fonctionne pas.
 
Vous savez pourquoi ?
 
Merci d'avance !


Message édité par chezwam le 02-06-2005 à 15:24:12

---------------
Mika ! #Lyon
mood
Publicité
Posté le 02-06-2005 à 15:10:51  profilanswer
 

n°1105665
el_gaucho
Posté le 02-06-2005 à 16:04:14  profilanswer
 

ca dépend si tu es en register_global= on ou off...
tu travail avec quelle version de php?
A mon avis il est à off, ce qui est normal!
 
d'autre part essayes avec :
 if (!isset($_GET['criteria'])) $criteria='id';
 else $criteria=$_GET['criteria'];
 if (!isset($_GET['order'])) $order='ASC';
 else $order=$_GET['order'];
 
ou plus simplement :
$criteria=(!isset($_GET['criteria']))?'id':$_GET['criteria'];
$order=(!isset($_GET['order']))?'ASC':$_GET['order'];
 
pour plus d'info voir ici manuel

n°1105721
chezwam
Eul' Fricadelle c'est bon !
Posté le 02-06-2005 à 16:22:52  profilanswer
 

Salut el_gaucho et merci,
 
Pour le register global et la version de php, faut que je vois avec l'hébergeur (privé).
Je vais aussi tester avec les conditions que tu as mis.
 
 :hello:


---------------
Mika ! #Lyon
n°1105731
chezwam
Eul' Fricadelle c'est bon !
Posté le 02-06-2005 à 16:25:53  profilanswer
 

el_gaucho a écrit :


 
d'autre part essayes avec :
 if (!isset($_GET['criteria'])) $criteria='id';
 else $criteria=$_GET['criteria'];
 if (!isset($_GET['order'])) $order='ASC';
 else $order=$_GET['order'];


 
Pour info, avec ce que tu m'as dit ça roule impec !!!!
Comme quoi ça tiens a pas grand chose  :pt1cable:  
 
Encore merci !


---------------
Mika ! #Lyon
n°1105778
el_gaucho
Posté le 02-06-2005 à 16:40:18  profilanswer
 

chezwam a écrit :

Pour info, avec ce que tu m'as dit ça roule impec !!!!
Comme quoi ça tiens a pas grand chose  :pt1cable:  
 
Encore merci !


 
de rien :hello:   :sol:


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

  [Débutant php/sql] Trier les données

 

Sujets relatifs
Base de Données avec MySql et vb.Netbase de Données avec MySql et vb.net
Excel et base de donnees SQL...transfert base de données vers PDA et conversion vb en evb
Trier une liste d'objets en utilisant TObjectListDébutant en macro sur excel!
VB6 débutant : besoin daide ou de piste..!trier avec sort
Mise à jour de données, code qui marche pasProbleme d'insertion dans ma base de données
Plus de sujets relatifs à : [Débutant php/sql] Trier les données


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