I am trying to order data from the table ‘tech_inquiry’ by the Field ‘number’ in descending order. This should put the results in order by year. Each ‘number’ field corresponds to another field with a title/date (what is actually viewed by visitors) which I can’t sort by because the date is at the end of the title and not always in the same place.
Also, the table ‘tech_inquiry_allowed’ determines what is viewable to who when logged in.
With that said, here is the code:
<?
$query2=mysql_query("SELECT * FROM tech_inquiry_allowed where term_code = '$term_code' ");
while($row2=mysql_fetch_assoc($query2))
{
$id2=$row2['id'];
$query3=mysql_query("SELECT * FROM tech_inquiry WHERE id= '$id2' ORDER BY number DESC");
$row3=mysql_fetch_assoc($query3);
$name3=$row3['name'];
?>
<hr />
<li><a href="get_file.php?id=<? echo $id2; ?> "><? echo $name3; ?> </a> </li>
<?
}
?>
Also, I have another ‘admin’ section that is able to order data correctly. The only difference is there is no conditional ‘where’ clause because no user authentication is needed (it is used to add data to the table).
Here is that code:
<?
$query2= mysql_query("SELECT * from tech_inquiry ORDER BY number DESC");
while($row2=mysql_fetch_assoc($query2))
{
$id2=$row2['id'];
$name2=$row2['name'];
?>
<hr />
<li><a href="get_file.php?id=<? echo $id2; ?> "><? echo $name2; ?> </a> </li>
<?
I am wondering if it might be the fact that we are running a query inside a loop.
There are a number of problems here. First of all you only need one query to accomplish this. Please read up on SQL query writing when you get a moment. You will find it to be VERY helpful.
Second, you are using way more code than you need to. Below is the much simplified, cleaner, and probably faster code.