PHP によって生成されたデータベースの xml を取得するスクリプトがあり、php スクリプトが xml をエコーする前に行をシャッフルして、データベースの xml ファイルにアクセスするたびにデータベースを異なる順序で受け取るようにしたいと考えています。 .
これは、xml を出力する私の php スクリプトの一部です。
$dom = new DOMDocument("1.0");
$node = $dom->createElement("database");
$parnode = $dom->appendChild($node);
$query = "SELECT * FROM database WHERE 1";
$result = mysql_query($query);
header("Content-type: text/xml");
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
$node = dom->createElement("data");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("id", $row['id']);
$newnode->setAttribute("name", $row['name']);
$newnode->setAttribute("date", $row['date']);
$newnode->setAttribute("latitude", $row['latitude']);
$newnode->setattribute("longitude", $row['longitude']);
}
可能であれば、xml 出力をランダム化したいところです。ここが一番理にかなった場所に思えますが、もっといい場所があればそれでいいのです。
echo $dom->saveXML();
これが私のxmlのサンプルです:
<database>
<data id="1" name="blah" date="2012-10-10" latitude="0" longitude="0"/>
<data id="3" name="blah" date="2012-10-10" latitude="0" longitude="0"/>
<data id="4" name="blah" date="2012-10-10" latitude="0" longitude="0"/>
</database>
簡単に言えば、アクセスするたびにxml行を異なる順序にしたいと思います。ご協力いただきありがとうございます。