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])作为行的标识符。但是,我无法找到如何将其用作标识符的方法,因为 rand = row[1] 在 sql 变量之后被调用。在这个例子中,我使用了一个静态的 '63kfjf' rand 值,这只是为了向你展示它的工作原理。有办法吗?

4

2 回答 2

1

从数据库中选择数据后,您可以创建一个以“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. 从表中选择 MAX(rand);确定最高的“随机”值。

  3. 生成一个介于 0 和 MAX(rand) 之间的随机值

  4. SELECT * FROM table WHERE rand = $randomGeneratedValue;

于 2012-06-13T08:47:10.843 回答