order by sur un lien d'un tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : order by sur un lien d'un tableau

par Truc » 18 mars 2006, 20:34

C'est déjà arrivé à tout le monde ce genre de choses :lol:

Le plus souvent on pose le clavier prend une pause et c'est bon :wink:

par roxor45 » 18 mars 2006, 20:28

bon ba du coup c'etait une grosse erreur de ma part !!!

enfaite a force de faire des tests dans tous les sens les liens pour changer l'ordre de la colonne menait sur un script de test.

c'est la misere a force d'avoir la tete dedans on voit pas les problemes les plus gros.

encore merci de votre aide

par roxor45 » 18 mars 2006, 20:21

je te met ca en ligne

par Truc » 18 mars 2006, 20:17

est-ce que tu as une page en ligne pour qu'on puisse voir ?

Lors su 1er chargement les lignes sont alternées et après un clic sur un lien c'est le désordre ?

par roxor45 » 18 mars 2006, 20:03

meme sortie en dehord de la boucle et placé a plusieur endroit ca ne change rien :roll:

par Truc » 18 mars 2006, 19:44

tu initialise la variable $i dans la boucle, elle est donc toujours égal à 1, sort l'initialisation avant la boucle.

par roxor45 » 18 mars 2006, 19:02

en faite ya un petit truc qui cloche, je vien de m'en rendre compte,

la gestion des couleurs altérné ne fonctionne plus apres avoir cliquer sur un lien pour trier les colonnes.

ce script est tous bete :
$i=1;

if ($i%2==0)
$color="#DEE7EB";
else
$color="#F5F5F5";
je ne comprend pas pourquoi

par roxor45 » 18 mars 2006, 14:28

...

je suis sur le cul, vous gerez trop sa fait peur :)

bon ba encore une probleme de resolu!


Merci a vous

Merci truc :D

par Truc » 18 mars 2006, 14:20

il manque une ligne apres la requete (avant le tableau):

$requete ="SELECT Nom_Grade,Num_Pompiers,Nom,Prenom,Telephone,Adresse,Conducteur_vl.Conducteur_vl,Conducteur_pl.Conducteur_pl,Cfapse.CFAPSE FROM Grades,Pompiers,Conducteur_vl,Conducteur_pl,Cfapse WHERE Grades.Num_grade=Pompiers.Num_grade and Pompiers.Conducteur_vl=Conducteur_vl.Num_choix AND Pompiers.Conducteur_pl=Conducteur_pl.Num_choix and Pompiers.CFAPSE=Cfapse.Num_choix ORDER BY ".$champ2." ".$order;

$envoi = mysql_query($requete);

$order = ($order == "") ? "DESC" : ""; 
pour inverser l'ordre de tri.

par roxor45 » 18 mars 2006, 13:56

ok c'est bien ce que je pensais donc je l'ai viré


voici le nouveau code :
<?php

//ici les parametres pour la connexion

   $host="localhost";
   $user="root";
   $passe="";
   $base="calendrier";


//on effectue la connexion

@mysql_connect("$host","$user","$passe");


//Selection de la base de données qui porte le meme nom que votre login

$select_base=@mysql_selectdb("$base");


$order= isset($_GET["order"]) ? $_GET["order"] : "DESC"; // récupération ordre ASC ou DESC

$champ= isset($_GET["champ"]) ? $_GET["champ"] : "Num_Grade"; // récupération du champ de tri

$champ2 = ($champ == "Num_Grade") ? "Grades.".$champ : "Pompiers.".$champ; // concaténation du nom de table pour le tri

$requete ="SELECT Nom_Grade,Num_Pompiers,Nom,Prenom,Telephone,Adresse,Conducteur_vl.Conducteur_vl,Conducteur_pl.Conducteur_pl,Cfapse.CFAPSE FROM Grades,Pompiers,Conducteur_vl,Conducteur_pl,Cfapse WHERE Grades.Num_grade=Pompiers.Num_grade and Pompiers.Conducteur_vl=Conducteur_vl.Num_choix AND Pompiers.Conducteur_pl=Conducteur_pl.Num_choix and Pompiers.CFAPSE=Cfapse.Num_choix ORDER BY ".$champ2." ".$order;

$envoi = mysql_query($requete);
?>
<table width="100%" border="0" align="center" bgcolor="#000000" cellpadding="2" cellspacing="1">
<tr>
<?php $ordre_url= ($champ != "Num_Grade") ? "" : $order ;  ?>
<td width="12%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Num_Grade&order=<?php echo $ordre_url; ?>">Grade</a></font></u></b></td>
<?php $ordre_url= ($champ != "Nom") ? "" : $order ;  ?>
<td width="10%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Nom&order=<?php echo $ordre_url; ?>">Nom</a></font></u></b></td>
<?php $ordre_url= ($champ != "Prenom") ? "" : $order ;  ?>
<td width="10%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Prenom&order=<?php echo $ordre_url; ?>">Prenom</a></font></u></b></td>
<?php $ordre_url= ($champ != "Telephone") ? "" : $order ;  ?>
<td width="10%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Telephone&order=<?php echo $ordre_url; ?>">Telephone</a></font></u></b></td>
<?php $ordre_url= ($champ != "Adresse") ? "" : $order ;  ?>
<td width="30%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Adresse&order=<?php echo $ordre_url; ?>">Adresse</a></font></u></b></td>
<?php $ordre_url= ($champ != "Conducteur_vl") ? "" : $order ;  ?>
<td width="10%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Conducteur_vl&order=<?php echo $ordre_url; ?>">Conducteur VTU</a></font></u></b></td>
<?php $ordre_url= ($champ != "Conducteur_pl") ? "" : $order ;  ?>
<td width="10%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=Conducteur_pl&order=<?php echo $ordre_url; ?>">Conducteur Fourgon</a></font></u></b></td>
<?php $ordre_url= ($champ != "CFAPSE") ? "" : $order ;  ?>
<td width="10%" align="center" valign="top" bgcolor="#C4D3DB"<font face="Arial" size="2"><u><b><a href="liste3.php?champ=CFAPSE&order=<?php echo $ordre_url; ?>">CFAPSE</a></font></u></b></td>
</tr>

<?php
// début de la boucle
while($tableau = mysql_fetch_array($envoi)) {

//gestion de la couleur alterné
$i=1;
if ($i%2==0)
$color="#DEE7EB";
else
$color="#F5F5F5";

echo "<tr> \n";
echo "<td width=\"12%\" valign=\"top\" bgcolor=".$color.">".$tableau["Nom_Grade"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color."><A href=\"javascript: OuvrirPopup('detail.php?id=".$tableau['Num_Pompiers']."', '', 'resizable=no, location=no, width=700, height=500, menubar=no, status=no, scrollbars=no, menubar=no')\">".$tableau["Nom"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color."><A href=\"javascript: OuvrirPopup('detail.php?id=".$tableau['Num_Pompiers']."', '', 'resizable=no, location=no, width=700, height=500, menubar=no, status=no, scrollbars=no, menubar=no')\">".$tableau["Prenom"]."</a></td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["Telephone"]."</td> \n";
echo "<td width=\"30%\" valign=\"top\" bgcolor=".$color.">".$tableau["Adresse"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["Conducteur_vl"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["Conducteur_pl"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["CFAPSE"]."</td> \n";
echo "</tr> \n";
$i++;
}
?>
</table>


par Truc » 18 mars 2006, 13:38

Et bien il ne sert à rien... un oubli, tu peux l'enlever.

Si le resultat n'est toujours pas celui attendu montre nous le code que tu as maintenant.

par roxor45 » 18 mars 2006, 13:10

je ne comprend pas l'interet du 1er ".$order." de la requete .

Code : Tout sélectionner

$requete =" SELECT Nom_Grade,Nom,Prenom,Telephone,Adresse,Conducteur_vl.Conducteur_vl,Conducteur_pl.Conducteur_pl,Cfapse.CFAPSE FROM Grades,Pompiers,Conducteur_vl,Conducteur_pl,Cfapse WHERE Grades.Num_grade=Pompiers.Num_grade and Pompiers.Conducteur_vl=Conducteur_vl.Num_choix AND Pompiers.Conducteur_pl=Conducteur_pl.Num_choix and Pompiers.CFAPSE=Cfapse.Num_choix ".$order." ORDER BY ".$champ2." ".$order;
apres avoir fait pas mal de tri entre le html et le php et avoir mis en place de que truc ma donné, sa ne tri que dans un sens :(

par charabia » 18 mars 2006, 12:32

Ton tableau n'a pas réellement changé. Regardes bien l'exemple que t'a fourni Truc, il a sorti ton tableau hors boucle (donc hors php) tout simplement. Reprend ton tableau et fait de même.

Dès qu'il s'agit d'un code HTML sans aucune variable ni code php, il ne faut pas que tu le mettes dans du php <?php ... ?>

par roxor45 » 18 mars 2006, 12:27

je suis désolé mais depuis ce matin mon tableau à beaucoup changé :D

Et là je vous dit franchement je capte plus sa va trop vite :lol: :lol:

:D

bref, on peut reprendre du debut svp ?

mon nouveau tableau est celui ci :
<?php

//ici les parametres pour la connexion

   $host="localhost";
   $user="root";
   $passe="";
   $base="calendrier";


//on effectue la connexion

@mysql_connect("$host","$user","$passe");


//Selection de la base de données qui porte le meme nom que votre login

$select_base=@mysql_selectdb("$base");


//ci-dessous gestion des ORDER BY dans un sens,

if (isset($_GET["order"]))
  $order = "ORDER BY ".$_GET["order"];
else
  $order= "ORDER BY Grades.Num_grade DESC";
  
// requête
$requete ="select Nom_Grade,Num_Pompiers,Nom,Prenom,Telephone,Adresse,Conducteur_vl.Conducteur_vl,Conducteur_pl.Conducteur_pl,Cfapse.CFAPSE from Grades,Pompiers,Conducteur_vl,Conducteur_pl,Cfapse WHERE Grades.Num_grade=Pompiers.Num_grade and Pompiers.Conducteur_vl=Conducteur_vl.Num_choix and Pompiers.Conducteur_pl=Conducteur_pl.Num_choix and Pompiers.CFAPSE=Cfapse.Num_choix ".$order;
$envoi = mysql_query($requete);


// début du tableau ( hors boucle )
echo "<table width=\"100%\" border=\"0\" align=\"center\" bgcolor=\"#000000\" cellpadding=\"2\" cellspacing=\"1\"> \n";
echo "<tr> \n";
echo "<td width=\"12%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Grades.Num_grade>Grade</a></font></u></b></td> \n";
echo "<td width=\"10%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.Nom>Nom</a></font></u></b></td> \n";
echo "<td width=\"10%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.prenom>Prenom</a></font></u></b></td> \n";
echo "<td width=\"10%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.Telephone>Telephone</a></font></u></b></td> \n";
echo "<td width=\"30%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.Adresse>Adresse</a></font></u></b></td> \n";
echo "<td width=\"10%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.Conducteur_vl>Conducteur VTU</a></font></u></b></td> \n";
echo "<td width=\"10%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.Conducteur_pl>Conducteur Fourgon</a></font></u></b></td> \n";
echo "<td width=\"10%\" align=\"center\" valign=\"top\" bgcolor=\"#C4D3DB\"<font face=\"Arial\" size=\"2\"><u><b><a href=liste.php?order=Pompiers.Cfapse>CFAPSE</a></font></u></b></td> \n";
echo "</tr> \n";
$i=1;

// début de la boucle
while($tableau = mysql_fetch_array($envoi)) {

//gestion de la couleur alterné
if ($i%2==0)
$color="#DEE7EB";
else
$color="#F5F5F5";

echo "<tr> \n";
echo "<td width=\"12%\" valign=\"top\" bgcolor=".$color.">".$tableau["Nom_Grade"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color."><A href=\"javascript: OuvrirPopup('detail.php?id=".$tableau['Num_Pompiers']."', '', 'resizable=no, location=no, width=700, height=500, menubar=no, status=no, scrollbars=no, menubar=no')\">".$tableau["Nom"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color."><A href=\"javascript: OuvrirPopup('detail.php?id=".$tableau['Num_Pompiers']."', '', 'resizable=no, location=no, width=700, height=500, menubar=no, status=no, scrollbars=no, menubar=no')\">".$tableau["Prenom"]."</a></td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["Telephone"]."</td> \n";
echo "<td width=\"30%\" valign=\"top\" bgcolor=".$color.">".$tableau["Adresse"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["Conducteur_vl"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["Conducteur_pl"]."</td> \n";
echo "<td width=\"10%\" valign=\"top\" bgcolor=".$color.">".$tableau["CFAPSE"]."</td> \n";
echo "</tr> \n";
$i++;
}

// fin du tableau html ( hors boucle )
echo "</table> \n";


?>
désolé si ya beaucoup de commentaire dans le script mais sa m'aide énormement, le fait qu'y est des commentaires peut nuir au script ?

par Truc » 18 mars 2006, 12:11

tu remplaces le haut de ton code jusqu'au WHILE()