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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$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.