0

これらの値をデータベースに保存するphpフォームがあります。

  • ID
  • rand (ランダムに生成された文字列)
  • x_val
  • y_val

mysqldb を使用して、Python プログラムでデータベースからこれらの値を呼び出しています。

import MySQLdb

db = MySQLdb.connect("localhost","root","","test" )

cursor = db.cursor()

sql = "SELECT id,rand,x_val,y_val  FROM  table"
 try:
cursor.execute(sql)
results = cursor.fetchall()
results =  {}
for row in results:
  results[row[1]] = [row[0], row[2], row[3]]
  rand = row[1]
  x_val = row[2]
  y_val = row[3]

except:
 print "Error: unable to fecth data"

db.close()

更新: エラーが発生します -> エラー: データを取得できません

この部分 (ご覧のとおり) では、rand (つまり、row[1]) を行の識別子として機能させたいと考えています。ただし、 sql 変数の後に rand = row[1] が呼び出されるため、これを識別子として使用する方法を見つけることができません。この例では、静的な '63kfjf' ランド値を使用しましたが、これは動作を示すためのものです。方法はありますか?

4

2 に答える 2

1

DB からデータを選択した後、「rand」値をキーとして辞書を作成できます。

このようなもの:

dicResults =  {}
for row in results:
    dicResults[row[1]] = [row[0], row[2], row[3]]
于 2012-06-13T08:12:10.900 に答える
0

行をランダムに選択しようとしていると思いますか?それが正しければ、これは機能します。

  1. rand を自動インクリメント整数に変更します。

  2. SELECT MAX(rand) FROM テーブル; 最高の「ランダム」値を決定します。

  3. 0 から MAX(rand) までのランダムな値を生成します

  4. SELECT * FROM テーブル WHERE ランド = $randomGeneratedValue;

于 2012-06-13T08:47:10.843 に答える