Trie à partir d'une colonne

Résolu/Fermé
mabenoit - 6 juil. 2009 à 15:39
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 - 7 juil. 2009 à 19:50
Bonjour,

Voilà mon code php.
Cela me donne ce tableau là:
http://sbbev.com/frappeurscumul_moy.php

Lorsque vous cliquer sur une nouvelle colonne, c'est une nouvelle page html qui ouvre et ainsi de suite, j'ai donc créé 12 pages html...

J'aimerais savoir comment, dans mon code php, faire en sorte qu'il réexécute sa requête à chaque fois que l'on clique sur le titre d'une colonne. plutôt que se soit un lien vers une autre page html...
Merci...
voici le code:


mysql_query("SET NAMES 'utf8'") ;



mysql_select_db($dbname ,$db);

$result = mysql_query ("SELECT Frappeur, Equipe, AB, CS, 1B, 2B, 3B, CC, SAC, K, BB, OPT, PP, PC, MOY, ONBASE FROM frappeurs Order by MOY desc");

$numofrows = mysql_num_rows($result);

echo "<table border=0 cellspacing=1 cellpadding=4 width=60% bgcolor=#dcdcdc>
<tr>
<td colspan=16 bgcolor=#192E6C><font face=verdana size=3 color=#FFFFFF><strong>Meneurs Frappeurs</strong></td>

</tr>\n";
echo "<TR bgcolor=\"#c1c1c1\"><TD align=left><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_frappeur.php'>Frappeurs</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_equipe.php'>Equipe</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_ab.php'>AB</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_cs.php'>CS</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_1b.php'>1B</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_2b.php'>2B</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_3b.php'>3B</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_cc.php'>CC</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_sac.php'>Sac</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_k.php'>K</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_bb.php'>BB</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_opt.php'>OPT</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_pp.php'>PP</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_pc.php'>PC</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_moy.php'>Moyenne</a></TD>
<TD align=center><font face=verdana size=1 color=#000000><strong></strong></font><a href='frappeurscumul_onbase.php'>On-Base</a></TD>
</div></TD></TR>\n";
for($i = 0; $i < $numofrows; $i++) {
$row = mysql_fetch_array($result); //get a row from our result set
if($i % 2) { //this means if there is a remainder
echo "<TR bgcolor=\"#ececec\">\n";
} else { //if there isn't a remainder we will do the else
echo "<TR bgcolor=\"#FFFFFF\">\n";
}
echo "<TD align=left><font face=verdana size=1>".$row['Frappeur'].
"<TD align=center><font face=verdana size=1>".$row['Equipe'].
"<TD align=center><font face=verdana size=1>".$row['AB'].
"<TD align=center><font face=verdana size=1>".$row['CS'].
"<TD align=center><font face=verdana size=1>".$row['1B'].
"<TD align=center><font face=verdana size=1>".$row['2B'].
"<TD align=center><font face=verdana size=1>".$row['3B'].
"<TD align=center><font face=verdana size=1>".$row['CC'].
"<TD align=center><font face=verdana size=1>".$row['SAC'].
"<TD align=center><font face=verdana size=1>".$row['K'].
"<TD align=center><font face=verdana size=1>".$row['BB'].
"<TD align=center><font face=verdana size=1>".$row['OPT'].
"<TD align=center><font face=verdana size=1>".$row['PP'].
"<TD align=center><font face=verdana size=1>".$row['PC'].
"<TD align=center bgcolor=#A8A8A8><font face=verdana size=3>".$row['MOY'].
"<TD align=center ><font face=verdana size=1>".$row['ONBASE']."\n";
echo "</TR>\n";
}


//now let's close the table and be done with it
echo "</TABLE>\n";



?>


Merci M-A
J'imagine que c'est un genre de queary....

8 réponses

nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
6 juil. 2009 à 15:48
tu peux faire comme ça
$tri = array('Frappeur', 'Equipe', 'AB', 'CS', '1B', '2B', '3B', 'CC', 'SAC', 'K', 'BB', 'OPT', 'PP', 'PC', 'MOY', 'ONBASE' );
if( !in_array( $_GET['tri'], $tri ) )
   $_GET['tri'] = 'MOY';
$result = mysql_query ("SELECT Frappeur, Equipe, AB, CS, 1B, 2B, 3B, CC, SAC, K, BB, OPT, PP, PC, MOY, ONBASE FROM frappeurs Order by MOY desc"); 


ensuite pour trier par AB -> page.php?tri=AB


j'ai oublié quelque chose ?



Attention tu met des choses inutiles ...
<font face=verdana size=1 color=#000000><strong></strong></font>
0
ok! J'ai effectivement nettoyer mon code. J'ai enlevé ces lignes inutiles. Merci
<font face=verdana size=1 color=#000000><strong></strong></font>

Je ne comprend pas vraiment comment ton code va faire ensorte que chaque titre de colonne devienne un lien... Puisque j'imagine que je dois enlever les a href.

Je crois que je ne comprends pas encore vraiment!!!
Si tu peux m'éclairer encore un peu!!!
Merci beaucoup
M-A

voici le code maintenant:

$numofrows = mysql_num_rows($result);

echo "<table border=0 cellspacing=1 cellpadding=4 width=60% bgcolor=#dcdcdc>
<tr>
<td colspan=16 bgcolor=#192E6C><font face=verdana size=3 color=#FFFFFF><strong>Meneurs Frappeurs</strong></td>

</tr>\n";
echo "<TR bgcolor=\"#c1c1c1\"><TD align=left><a href='frappeurscumul_frappeur.php'>Frappeurs</a></TD>
<TD align=center><a href='frappeurscumul_equipe.php'>Equipe</a></TD>
<TD align=center><a href='frappeurscumul_ab.php'>AB</a></TD>
<TD align=center><a href='frappeurscumul_cs.php'>CS</a></TD>
<TD align=center><a href='frappeurscumul_1b.php'>1B</a></TD>
<TD align=center><a href='frappeurscumul_2b.php'>2B</a></TD>
<TD align=center><a href='frappeurscumul_3b.php'>3B</a></TD>
<TD align=center><a href='frappeurscumul_cc.php'>CC</a></TD>
<TD align=center><a href='frappeurscumul_sac.php'>Sac</a></TD>
<TD align=center><a href='frappeurscumul_k.php'>K</a></TD>
<TD align=center><a href='frappeurscumul_bb.php'>BB</a></TD>
<TD align=center><a href='frappeurscumul_opt.php'>OPT</a></TD>
<TD align=center><a href='frappeurscumul_pp.php'>PP</a></TD>
<TD align=center><a href='frappeurscumul_pc.php'>PC</a></TD>
<TD align=center><a href='frappeurscumul_moy.php'>Moyenne</a></TD>
<TD align=center><a href='frappeurscumul_onbase.php'>On-Base</a></TD>
</div></TD></TR>\n";
for($i = 0; $i < $numofrows; $i++) {
$row = mysql_fetch_array($result); //get a row from our result set
if($i % 2) { //this means if there is a remainder
echo "<TR bgcolor=\"#ececec\">\n";
} else { //if there isn't a remainder we will do the else
echo "<TR bgcolor=\"#FFFFFF\">\n";
}
echo "<TD align=left><font face=verdana size=1>".$row['Frappeur'].
"<TD align=center><font face=verdana size=1>".$row['Equipe'].
"<TD align=center><font face=verdana size=1>".$row['AB'].
"<TD align=center><font face=verdana size=1>".$row['CS'].
"<TD align=center><font face=verdana size=1>".$row['1B'].
"<TD align=center><font face=verdana size=1>".$row['2B'].
"<TD align=center><font face=verdana size=1>".$row['3B'].
"<TD align=center><font face=verdana size=1>".$row['CC'].
"<TD align=center><font face=verdana size=1>".$row['SAC'].
"<TD align=center><font face=verdana size=1>".$row['K'].
"<TD align=center><font face=verdana size=1>".$row['BB'].
"<TD align=center><font face=verdana size=1>".$row['OPT'].
"<TD align=center><font face=verdana size=1>".$row['PP'].
"<TD align=center><font face=verdana size=1>".$row['PC'].
"<TD align=center bgcolor=#A8A8A8><font face=verdana size=3>".$row['MOY'].
"<TD align=center ><font face=verdana size=1>".$row['ONBASE']."\n";
echo "</TR>\n";
}

echo "</TABLE>\n";



?>
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
7 juil. 2009 à 12:33
ça ne m'étonne pas que tu ne comprenne pas j'ai oublié des morceaux ^^

tiens j'ai corrigé pas mal de trucs ça devrait marcher maintenant
<?php
$tri = array('Frappeur', 'Equipe', 'AB', 'CS', '1B', '2B', '3B', 'CC', 'SAC', 'K', 'BB', 'OPT', 'PP', 'PC', 'MOY', 'ONBASE' );
$lien = array('Frappeurs', 'Equipe', 'AB', 'CS', '1B', '2B', '3B', 'CC', 'Sac', 'K', 'BB', 'OPT', 'PP', 'PC', 'Moyenne', 'On-Base' );
if( !in_array( $_GET['tri'], $tri ) )
   $_GET['tri'] = 'MOY';

mysql_query("SET NAMES 'utf8'") ;
mysql_select_db($dbname ,$db);
$result = mysql_query ('SELECT Frappeur, Equipe, AB, CS, 1B, 2B, 3B, CC, SAC, K, BB, OPT, PP, PC, MOY, ONBASE FROM frappeurs Order by '.$_GET['tri'].' desc'); 
$numofrows = mysql_num_rows($result);

echo '<table cellspacing=1 cellpadding=4 style="border-style:hidden; width:60%; background-color:#dcdcdc">
<tr>
<td colspan=16 style="font-family:verdana; color:#FFFFFF; font-size:medium; font-weight:bold; background-color:#192E6C;">Meneurs Frappeurs</td>
</tr>\n';
echo '<tr style="background-color:#c1c1c1">
	<td style="text-align:left"><a href="?tri='.$tri[0].'">'.$lien[0].'</a>';
for($i=1; $i<16; $i++)
	echo '<td style="text-align:center"><a href="?tri='.$tri[$i].'">'.$lien[$i].'</a>';
echo '</tr>';

for($i = 0; $i < $numofrows; $i++) {
	$row = mysql_fetch_array($result); //get a row from our result set
	if($i % 2){ //this means if there is a remainder
		echo '<tr style="background-color:#ececec">\n';
	}else{ //if there isn't a remainder we will do the else
		echo '<tr style="background-color:#FFFFFF">\n';
	}
	if($tri[0]==$_GET['tri'])
		echo '<td style="text-align:left; font-family:verdana; font-size:smaller; background-color:#a8a8a8;">'.$row[$tri[$i]].'</td>';
	else
		echo '<td style="text-align:left; font-family:verdana; font-size:smaller;">'.$row[$tri[$i]].'</td>';
	for($i=1; $i<16; $i++)
		if($tri[$i]==$_GET['tri'])
			echo '<td style="text-align:center; font-family:verdana; font-size:x-small; background-color:#a8a8a8;">'.$row[$tri[$i]].'</td>';
		else
			echo '<td style="text-align:center; font-family:verdana; font-size:x-small;">'.$row[$tri[$i]].'</td>';
	echo "</tr>\n";
}
echo "</table>\n";
?>
0
Je ne sais pas comment vous remercier...!!!

Le seul petit bogue qui reste c'est une série de \n qui s'écrit sans cesse au début de la page et après le premier nom plus rien!!! Je regarde le tout!!!

http://sbbev.com/frappeurscumul_moy.php

Merci encore pour le début!
M-A
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
7 juil. 2009 à 15:56
j'ai corrigé une petite erreur qui faisait une boucle infinie
et changé le moyen de colorier une ligne sur 2

<?php
$tri = array('Frappeur', 'Equipe', 'AB', 'CS', '1B', '2B', '3B', 'CC', 'SAC', 'K', 'BB', 'OPT', 'PP', 'PC', 'MOY', 'ONBASE' );
$lien = array('Frappeurs', 'Equipe', 'AB', 'CS', '1B', '2B', '3B', 'CC', 'Sac', 'K', 'BB', 'OPT', 'PP', 'PC', 'Moyenne', 'On-Base' );
if( !in_array( $_GET['tri'], $tri ) )
   $_GET['tri'] = 'MOY';

mysql_query("SET NAMES 'utf8'") ;
mysql_select_db($dbname ,$db);
$result = mysql_query ('SELECT Frappeur, Equipe, AB, CS, 1B, 2B, 3B, CC, SAC, K, BB, OPT, PP, PC, MOY, ONBASE FROM frappeurs Order by '.$_GET['tri'].' desc'); 
$numofrows = mysql_num_rows($result);

echo '<table cellspacing=1 cellpadding=4 style="border-style:hidden; width:60%; background-color:#dcdcdc">
<tr>
<td colspan=16 style="font-family:verdana; color:#FFFFFF; font-size:medium; font-weight:bold; background-color:#192E6C;">Meneurs Frappeurs</td>
</tr>';
echo '<tr style="background-color:#c1c1c1">
	<td style="text-align:left"><a href="?tri='.$tri[0].'">'.$lien[0].'</a>';
for($i=1; $i<16; $i++)
	echo '<td style="text-align:center"><a href="?tri='.$tri[$i].'">'.$lien[$i].'</a>';
echo '</tr>';

$b=true;
while($row = mysql_fetch_array($result)) { //get rows from our result set while there is one
	$b = !$b;
	if($b){ //this means if there is a remainder
		echo '<tr style="background-color:#ececec">';
	}else{ //if there isn't a remainder we will do the else
		echo '<tr style="background-color:#FFFFFF">';
	}
	if($tri[0]==$_GET['tri'])
		echo '<td style="text-align:left; font-family:verdana; font-size:smaller; background-color:#a8a8a8;">'.$row[$tri[0]].'</td>';
	else
		echo '<td style="text-align:left; font-family:verdana; font-size:smaller;">'.$row[$tri[0]].'</td>';
	for($i=1; $i<16; $i++)
		if($tri[$i]==$_GET['tri'])
			echo '<td style="text-align:center; font-family:verdana; font-size:x-small; background-color:#a8a8a8;">'.$row[$tri[$i]].'</td>';
		else
			echo '<td style="text-align:center; font-family:verdana; font-size:x-small;">'.$row[$tri[$i]].'</td>';
	echo '</tr>';
}
echo '</table>';
?>


pour les \n c'est toi qui les a mis ...
suffis de les enlever
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci tout est ok.
J'ai enlevé les \n
Tout est numéro 1

Encore une fois merci infiniment
M-A
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
7 juil. 2009 à 19:45
Tout est numéro 1
comment ça ?
0
Tout est numéro 1 dans le sens de tout est parfait...
Merci encore
M-A
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
7 juil. 2009 à 19:50
ravi de t'avoir aidé :)
0