phpを使用してmysqlデータベースからレコードを引き出しており、expdateというデータベースフィールドでレコードを並べ替えたいと考えています。
リマインダーの日付は、varcharとしてこの形式17-04-12でテーブルに保存されます。
次のコードを使用して、すべてのレコードを引き出し、expdate列で並べ替えています。
<table border="0" style="text-align:left;">
<tr style="text-align:left;">
<th style="text-align:left;" width="200px" scope="col">Name</th>
<th style="text-align:left;" width="200px" scope="col">Email</th>
<th style="text-align:left;" width="200px" scope="col">Telephone</th>
<th style="text-align:left;" width="200px" scope="col">Current Cover Expires</th>
</tr>
<?php
$today = date("d-m-y");
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe ORDER BY expdate")or die(mysql_error());
echo '<tr style="text-align:left;">';
while($row = mysql_fetch_array($result))
{
echo '<td style="text-align:left;">';
echo $row['name'];
echo '</td>';
echo '<td style="text-align:left;">';
echo $row['email'];
echo '</td>';
echo '<td style="text-align:left;">';
echo $row['tel'];
echo '</td>';
echo '<td style="text-align:left;">';
echo $row['expdate'];
echo '</td>';
echo "</tr>";
}
?>
</table>
問題は、列が非常にランダムに並べ替えられていることです。レコードが出力され、次の日付順に並べ替えられます。
08-07-12
17-05-12
17-05-13