1

データ取得ボードを実行し、PHP コードを生成して 15 分ごとにデータを抽出し、それをテーブルに挿入します。

これはうまくいきます。ただし、何らかの理由で接続が失われたり、一部の値が欠落している場合は、回復関数を生成したいので、ボードにいくつかの値を要求する方法を理解する必要がありますが、回復したデータを投稿する方法を理解する必要があります。次に、テーブル全体をタイムスタンプ順に並べ替えます。

そのためにphpを使いたいので、このコードを配置します

$result = mysql_query("SELECT * FROM `table` ORDER BY `date` DESC;" );

しかし、これは何の効果ももたらしません。結果ではなくテーブルをソートする必要があります。

それを行う簡単な方法はありますか?

編集

データはタイムスタンプで抽出され、テーブルは次の構造になります。

id  |  TimeStamp  |  Temperature
  • 私のidINT NOT NULL AUTO_INCREMENT PRIMARY KEY
  • timestamp
  • temperaturevarchar(15)

php 関数は取得ボードの最後の値を取得し、最後の ID に挿入します。データの履歴を作成するためにタイムスタンプを配置するだけです。しかし、回復の場合に備えて、テーブルをこのフィールドでソートしたいと思います。回復を行うには、ボードへの呼び出し機能が連続モードとは大きく異なります。そのため、シーケンシャル挿入を使用し、失われたデータの回復が完了した後、タイムスタンプを使用してテーブル全体を並べ替えることができるかどうか迷っていました。

4

2 に答える 2

0

これはあなたが聞きたい答えではないことはわかっていますが、残念ながら、それは本当です。「テーブルの順序」などというものはありません。テーブルは行のセットであり、行のシーケンスではありません。これが、テーブル自体ではなく、結果のみを並べ替えることができる理由です (操作は無意味です)。

あなたがしなければならないことは、設計を再考し、データベースについての良い本を読み、誤った仮定を取り除くことです。

達成したいことが「タイムスタンプに従って主キーが順序付けられていることを確認する」ことである場合、まあ、それは望ましくありません。方法はありますが、それらはすべて正気ではありません。最も簡単な (おそらく) 方法は、 select intoを使用してすべての行を他のテーブルにダンプし、元のテーブルからそれらを削除して、再度挿入することです。とにかく:これを試さないでください。テーブルを注文する必要はありません。

于 2012-06-30T20:44:13.477 に答える
0

質問を読んだところ、これはテーブル内のデータが順番に挿入されるのではなく、タイムスタンプに従って挿入されるという希望に関係しています。

おそらく、著者がこの必要性がどのように発生するかを明確にすることができれば、SO コミュニティはさらに支援できるかもしれません。

于 2012-06-27T04:56:59.597 に答える