Ik heb de volgende vraag.

In een database heb ik de volgende filmtitels staan.
Police Academy 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 en 12.
als ik de quiry alphabetisch orden, dan komt ie met
1,10,11,12,2,3,4,5,6,7,8,9

Hoe kan ik dit voorkomen, cq dit gedrag corrigeren.
Ik kan de titels ook wel veranderen in 01, 01 etc, maar dat vind ik er niet netjes uitzien.
@ozzie.. en nu kan ik $result via een while loop gaan uitlezen, omdat de array via natsort 'natuurlijk' is geordend?
Het is dus niet nodig om het volgende te doen: $natsort_result = natsort($result); waarna ik $natsort_result via een while loop doorloop...
Je vergeet te fetchen, Ozzie ;-)
Een $result van een mysql(i)_query levert alleen een resource op bij een succes, of een FALSE bij een fout.

<?php
$query = "SELECT * FROM movies ORDER BY moviename ASC ";
$result = mysql_query($query); // gebruik bij voorkeur de mysqli_query functie, omdat deze oude mysql_() functie in PHP 7 ter ziele is.

$items = array(); // array aanmaken.
while($data = mysql_fetch_assoc($result)){
$items[] = $data; // vul de array aan.
}

natsort($items); // we sorteren de $items-array nu met de natsort() functie.
?>
Ik weet niet hoe alle titles er uitzien, maar dit geeft een goed resultaat :

select * , SUBSTRING(moviename,1,6) from movies order by SUBSTRING(moviename,1,6) asc ,length(moviename), moviename;

Reageren