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

Trier les données [Débutant php/sql] - SQL/NoSQL - Programmation

Marsh Posté le 02-06-2005 à 15:10:51    

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
Reply

Marsh Posté le 02-06-2005 à 15:10:51   

Reply

Marsh Posté le 02-06-2005 à 16:04:14    

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

Reply

Marsh Posté le 02-06-2005 à 16:22:52    

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
Reply

Marsh Posté le 02-06-2005 à 16:25:53    

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
Reply

Marsh Posté le 02-06-2005 à 16:40:18    

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:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed