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

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 : Classer les donnees dans un tableau (Desc ou Asc...)

x

par Gogad » 04 déc. 2008, 12:41

Oula, vous allez vite :)

J'ai corrige mes erreurs egalement :

<?php

et

die(mysql_error());


Merci beaucoup :)

par guilt92 » 04 déc. 2008, 12:15

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...

par yaug » 04 déc. 2008, 12:03

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:

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

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

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 :)