-1

I have a mysql table with around 20 columns, what I am trying to do is retrieve values from database and send those values to a Web page.

So, by usingmysql_fetch_array() I can get the first value entered in the database and by using while(mysql_fetch_array()), I am able to retrieve all the values in the database table, and by using fwrite(), i can even send the values to a file.

But the problem is if i use while(mysql_fetch_array()), all the values are getting retrieved; I only want the current(latest) value entered in the database to be sent to another page. How do I do this?

4

3 に答える 3

1

クエリをフィルタリングするだけで、目的の結果のみが得られます。たとえば、データベースにタイムスタンプがファイルされているとしましょう。次のようにします。

SELECT * FROM table ORDER BY `timestamp_field` DESC LIMIT 1

明らかに、より早い日付が必要な場合は、DESCの代わりにASCを使用できます。これと同じロジックが、ソートする可能性のある他の列タイプにも適用されます。

于 2012-08-31T17:45:20.183 に答える
0

まず、LATEST値を別のページに送信しようとしている場合、必要な値だけでなくすべての値を受け取るクエリを実行しているのはなぜですか?新しいフィールドで何かをして、最新の「date_created」値を確認することは可能ですか?したがって、次のようなものが得られます。

    SELECT * FROM table ORDER BY date_created DESC LIMIT 1

これで、データベースに入力された最新の値のみが取得されます。もちろん、列を作成する必要があります:date_created;)

于 2012-08-31T17:46:34.610 に答える
0

サーバーから多くのデータをフェッチし、受信したデータから目的のデータを並べ替えたり取得したりするには、帯域幅と時間がかかることを覚えておく必要があります。この種のシナリオでは、帯域幅と時間の問題を解決するためにSQLクエリを最適化する必要があります。

MIKEによって記述されたSQLクエリを受け入れます。あなたが直面している問題に最適化されているように私には思えます。

SELECT * FROM table ORDER BYtimestamp_fieldDESC LIMIT 1

したがって、上記のクエリからデータを取得した後、サーバーからデータをフェッチするための帯域幅と時間を削減するのに役立つデータを出力するだけです[5〜10行では問題ありませんが、100000000000がある場合は、深刻な問題です。本当に重要]。

大切な時間をありがとうございました。

于 2012-08-31T18:32:05.600 に答える