8791 sujets

Développement web côté serveur, CMS

Bonjour je souhaite mettre dans l'ordre alphabétique le champ "nom" de ma table sql. Comment faire ?? Smiley bawling

OU alors pour ne pas toucher ma base de donnée il y a t'il une solution pour mettre dans un ordre alphabétique ma liste de contact suivant un champ (colonne) choisie ? Smiley biggol


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Liste</title>
<style type="text/css">
body{
	background-color:#CCC;
	}
table{
	background-color:#FFC;
	border: solid 2px;
	border-color:#F00;
	border-collapse:collapse;
	margin:auto;
	font-family:Arial, Helvetica, sans-serif;
	}
th{
	text-align:center;
	background-color:#CFF;
	}
td{
	border:solid 1px;
	border-color:#F00;
	width:10%;
	text-align:center;
	}
</style>
<?php
function switchcolor()
{
static $col;
$couleur1 = "#FFF7EB";
$couleur2 = "#FFFFFF";
if ($col == $couleur1)
{
$col = $couleur2;
}
else
{
$col = $couleur1;
}
return $col;
}
?>
</head>

<body>
<table>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Ville</th>
<th>E-mail</th>
</tr>
<?php
try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=localhost;dbname=annuaire', 'xxxxxxxx', 'xxxxxxxx');
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}

// Si tout va bien, on peut continuer

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM info');

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>

<tr bgcolor="<?php echo switchcolor(); ?>" >
<td><?php echo $donnees['info_nom'];?></td>
<td><?php echo $donnees['info_prenom'];?></td>
<td><?php echo $donnees['info_ville'];?></td>
<td><?php echo $donnees['info_email'];?></td>
</tr>

<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>
</table>

<select>
<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=annuaire', 'xxxxxxxx', 'xxxxxxxx');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM info');
while ($donnees = $reponse->fetch())
{
	
?>

<option><?php echo $donnees['info_nom'];?> <?php echo $donnees['info_prenom'];?></option>


<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>
</select>

</body>
</html>


Merci pour vos réponses !
Salut,

Les tris en SQL c'est quand même la base ...

SELECT
   `champ1`,
   `champ2`
FROM
   `ma_table`
ORDER BY
   `champ1`
oui merci mais je suis novis en php comment inséré de façon correct ce bout de code ? merci


Mes champs sont les suivants :

info_id, info_nom, info_prenom, info_ville, info_email
Modifié par Designarca (02 Dec 2010 - 16:43)
Modérateur
Bonjour,

Tu dois trouver l'endroit dans ton code PHP où tu fais une requête SQL. Du code SQL ressemble à ceci :

SELECT champ1, champ2 FROM maTable WHERE ID = 1 ORDER BY champ1 DESC


C'est dans cette requête SQL que tu dois ajouter/modifier la clause ORDER BY.
oui mais mon code est fais de la maniere suivante :

// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM info');

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>

<tr bgcolor="<?php echo switchcolor(); ?>" >
<td><?php echo $donnees['info_nom'];?></td>
<td><?php echo $donnees['info_prenom'];?></td>
<td><?php echo $donnees['info_ville'];?></td>
<td><?php echo $donnees['info_email'];?></td>
</tr>
Modérateur
Ah, il y a un problème avec le forum. On ne voit pas ton code PHP. Je peux quand même le voir en tant que modérateur.

Alors, je dirais :
$reponse = $bdd->query('SELECT * FROM info ORDER BY info_prenom, info_nom');


Là ça va trier par prénom, ensuite par nom de famille.

De préférence, on n'utilise pas le caractère *. Il est préférable de spécifier les champs qu'on a besoin.
Modifié par Tony Monast (02 Dec 2010 - 16:55)