プロが教える店舗&オフィスのセキュリティ対策術

ID ・ 名前 ・ 都道府県名 ・ エリア名 ・ TEL
というデータがあります。

表示順序(order by)ですが、都道府県名・エリア名の順で表示させたいのですが、
その次の順序条件をランダムに表示したいのです。

つまり、都道府県名・エリア名が同じデータの場合に、決まった順序ではなく、ランダムにすることによって、公平な順序条件で表示したいのです。
(誰もが上に表示されたいと思っています。なので、ランダムにすることによって、公平になるのではないかと考えました。ランダム表示以外にも、良い案があれば教えて頂きたいです。)

どなたか、良い方法があれば、ご指南頂ければ有難いです。宜しくお願い致します。

<?php

require_once("../***.php");


$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);

$selectdb = mysql_select_db($DBNAME, $con);

$sql = "select * from YTABLE
order by ken, area, ★";

$rst = mysql_query($sql, $con);


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title></title>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="10">

<?php while($col = mysql_fetch_array($rst)) { ?>

<tr>
<td><?php echo $col["name"]; ?></a></td>
<td><?php echo $col["ken"]; ?></a></td>
<td><?php echo $col["area"]; ?></a></td>
<td><?php echo $col["tel"]; ?></a></td>
</tr>
<?php } ?>

</table>
</body>
</html>
<?php
mysql_free_result($rst);
$con = mysql_close($con);
?>

A 回答 (2件)

order by ken, area, rand()";



じゃだめ?
    • good
    • 0
この回答へのお礼

ありがとうございました。
rand関数を知りませんでした。
これで、やって見たいと思います。

お礼日時:2004/10/01 16:43

一つのアイディアとして、3番目のソートの条件を


id DESC
id ASC
名前 DESC
名前 ASC
電話番号 DESC
電話番号 ASC
と6通り考えられますがこれをランダムにsqlに追加するロジックを加えれば少しはランダムになりますよね、
さらに組み合わせを取ればかなり乱数チックになると思いますよ
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2004/10/01 16:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!