How to alphabetical sort mysql query field variable in PHP?
|Today I was working on a code and find some difficulty while doing it. So I thought, I should share this with all of you.
Actually, I want to alphabetical sort MySQL query filed value variable.
Let’s start it with a code –
$sql= mysql_query("Select DISTINCT(`Supervisor ID`) from `list` ");
In the above query, I am selecting unique supervisor id from table list. Actually, I need names who are Supervisors and I have only supervisor ids.
In below code, I got the ids of Supervisors I again fire the query to find the Name who are Supervisors.
Now, $username[0] field contains the names of all Supervisors. But I was stuck, how to sort this $username[0] variable that contains all names.
So, i sort name into a new array $uname[] .
while($row = mysql_fetch_array($sql)) { $id = $row['Supervisor ID']; $query = "SELECT `Name` from `list` WHERE `ID` = '$id' "; $name = mysql_query($query); $username = mysql_fetch_array($name); /* Sort name in to an new array */ $uname[] = $username['0']; }
Now, I used the sort() function to sort the array.
$user_names = sort($uname);
Then, I created all the options values like this –
foreach($uname as $name) { echo $name; }
This will print all names who are Supervisors in alphabetical order. The main work was here to sort name into a new array and then sort names.
With a valid database design this should also deliver the right result with only one mysql request:
$sql= mysql_query(“Select DISTINCT `Supervisor ID`, `Name` from `list` ORDER BY `Name` ASC”);
you are right but due to some reasons i can not change the database structure. some time we have to face such issues.