|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: Fonction sort qui me sort un tri mais pas comme je le souhaite : 1 10 11 12 2 3 (Lu 877 fois) |
|
 |
Fonction sort qui me sort un tri mais pas comme je le souhaite : 1 10 11 12 2 3
« sur: le 24-11-2008 a 23:03:34 » |
|
sanddy
Membre récent

Hors-Ligne
Messages: 22

Je suis un lama!
|
Bonjour,
J'ai un gros problème...
J'ai passé toute la journée dessus, je pense arriver vers la fin mais j'ai besoin de vous.
Je vous explique le problème :
Nous avons dans une table "photos" un champ "photo" en varchar qu'on ne peut pas changer... car le site a toujours fonctionné avec et plusieurs applications utilisent ce champ.
J'essaie de classer ces photos mais ce que je fais me classe toujours mal les chiffres.
Il est de la forme : photoid_numero.jpg
Un exemple :
Je fais un ORDER BY monchamp ASC, cela m'affiche :
8_1.jpg 8_10.jpg 8_11.jpg 8_12.jpg 8_2.jpg 8_3.jpg 8_4.jpg 8_5.jpg 8_6.jpg 8_7.jpg 8_8.jpg 8_9.jpg
Il me met toujours le 10, 11, 12... entre le 1 et le 2 !!
Au lieu de :
8_1.jpg 8_2.jpg 8_3.jpg 8_4.jpg 8_5.jpg 8_6.jpg 8_7.jpg 8_8.jpg 8_9.jpg 8_10.jpg 8_11.jpg 8_12.jpg
Savez-vous comment faire SVP 
J'avais pensé à un tableau mais en faisant la fonction sort, cela me sort toujours dans le même ordre...
Je vous donne mon code :
$query = "SELECT * FROM photos WHERE idphoto='$id' ORDER BY idd DESC"; $query2 = mysql_query($query) or die(mysql_error());
$tab = array();
while ($a=mysql_fetch_assoc($query2)) {
$possep=strpos($a['photo'],"_");
$pospt=strpos($a['photo'],".");
$lngnum=$pospt-$possep-1;
$nbpht=substr($a['photo'],$possep+1,$lngnum); $faire = $nbpht.", "; $tab[] = $faire; //$tab.= ", ".$nbpht; //rsort($tab); }
if (is_array($tab)) { sort($tab); foreach ($tab as $value) { echo $value; } } |
|
Pouvez-vous m'aider SVP 
Pas facile de se faire comprendre, j'espère que vous aurez compris 
Merci d'avance. |
|
|
|
|
|
|
 |
Re:Fonction sort qui me sort un tri mais pas comme je le souhaite : 1 10 11 12 2
« Répondre #1 sur: le 26-11-2008 a 22:54:57 » |
|
|
|
|
 |
Re:Fonction sort qui me sort un tri mais pas comme je le souhaite : 1 10 11 12 2
« Répondre #2 sur: le 28-11-2008 a 17:54:18 » |
|
|
|
|
 |
Re:Fonction sort qui me sort un tri mais pas comme je le souhaite : 1 10 11 12 2
« Répondre #3 sur: le 03-12-2008 a 09:10:02 » |
|
|
|
|
 |
Re:Fonction sort qui me sort un tri mais pas comme je le souhaite : 1 10 11 12 2
« Répondre #4 sur: le 03-12-2008 a 09:39:43 » |
|
Krash
P'tit nouveau
 
Hors-Ligne
Sexe: 
Messages: 181

|
En fait il y a beaucoup plus simple que tout ca Tu récupères toutes tes images que tu met dans un tableau et avec une fonction de trie c'est fait automatiquement. La fonction sort() triera de la même manière que ce que tu as en ce moment. Par contre la fonction natsort() triera comme tu le souhaites.
$images = array("8_1.jpg", "8_7.jpg", "8_10.jpg", "8_11.jpg", "8_2.jpg", "8_3.jpg", "8_5.jpg", "8_4.jpg", "8_12.jpg", "8_6.jpg", "8_8.jpg", "8_9.jpg"); natsort($images); foreach($images as $img) { echo $img . "<br/>"; }
|
|
Ce qui de donnera bien
8_1.jpg 8_2.jpg 8_3.jpg 8_4.jpg 8_5.jpg 8_6.jpg 8_7.jpg 8_8.jpg 8_9.jpg 8_10.jpg 8_11.jpg 8_12.jpg
|
|
Et si tu as des majuscules dans les noms d'images, utilises la fonction natcasesort() qui est insensible à la casse. |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|