Page 1 sur 1

Classer les donnees dans un tableau (Desc ou Asc...)

Posté : 04 déc. 2008, 11:51
par Gogad
Bonjour,

Je souhaiterais pouvoir classer les donnees qui se trouvent dans mon tableau par ordre alphabetique, Descendante ou ascendante.

J'ai fait plusieurs test sur mon bout de code, j'imagine bien que je suis pas tres loin de la solution et que mes liens sont "bizarres" mais rien a faire...
La page se presente bien, mais quand je clique sur les liens, rien ne se passe.

Voici le code :


<?php


if(isset($_GET["sort"])) 
{
	switch($_GET["sort"])
	{
		case "name":
			$query = "SELECT * from XXXXX order by name";
			break;
		case "phone":
			$query = "SELECT * from XXXXX order by phone";
			break;
		default:
			$query = "SELECT * from XXXXX";
			break;
	}

	if(isset($_GET["asc"]))
	{
		$query .= "asc";
	}
	else if(isset($_GET["desc"]))
	{
		$query .= "desc";
	}
	
}
else //sort by default setting in table
{
	$query = "SELECT * from XXXXX";
}



?>




<table width="600" cellpadding="5">
<tr>
		<td><a href="?desc">Sort by descending</a><br>
		<a href="?asc">Sort by ascending</a></td>
		<td><a href="?sort?desc">Sort by descending</a><br>
		<a href="?sort?asc">Sort by ascending</a></td>
</tr>


<?php
$findit = mysql_query($query) or die(mysql_error());
while($fi = mysql_fetch_array($findit))
{
?>

<tr>
	<td><?php echo $fi["name"]; ?></td><td><? echo $fi["phone"]; ?></td>
</tr>

<?php } ?>
Merci pour votre aide :)

Posté : 04 déc. 2008, 12:03
par yaug
En ayant juste survolé.
Tes liens ne vont pas.

Tu utilise ? plus d'une fois dans certain.

Un liens c'est ?param1=val1&param2=val2 ...

Tu peux donc utiliser
?sort=DESC
ou ?sort=ASC
Et y ajouter d'autres paramètres si nécessaire.
?sort=DESC&by=name
?sort=DESC&by=phone

:wink:

Posté : 04 déc. 2008, 12:15
par guilt92
Aussi il faudra rajouter un espace avant la concaténation sinon ca va donner un truc du genre :

SELECT * from XXXXX order by nameasc

et tu auras une erreur pour dire que nameasc n'est pas une colonne...
if(isset($_GET["asc"])) $query .= " asc";
else if(isset($_GET["desc"])) $query .= " desc"; 
marchera mieux ;)

A ce propos met les or die(mysql_error()); après tes mysql_query...

x

Posté : 04 déc. 2008, 12:41
par Gogad
Oula, vous allez vite :)

J'ai corrige mes erreurs egalement :

<?php

et

die(mysql_error());


Merci beaucoup :)