Найти - Пользователи
Полная версия: Вывод данных из таблицы
Начало » Базы данных » Вывод данных из таблицы
1
Fe_DoS
Здравствуйте! Возникла проблема, есть код:
import cgi
import MySQLdb

MyDB=MySQLdb.connect(host='localhost', user='root', passwd='', db='serv')
cursor=MyDB.cursor()
cursor.execute("""SELECT * FROM IndexPage WHERE id=2""")
zg1=cursor.fetchall()
zp=cgi.FieldStorage()
p=zp.has_key('pages')
lixt='lrof'
title='{TITLE}'
Block1='{BLOCK_1}'

if p==1:
print 'Content-Type: text/html\n'
sh=open(r'themplates/sh2')
res=sh.read()
xen=res.replace(lixt,'refr')
xen=xen.replace(title,'Название страницы')
xen=xen.replace(Block1,zg1)
print xen
Отображается пустая страница и в логе ошибка:
xen=xen.replace(Block1,zg1)\r
TypeError: expected a character buffer object\r
А если сделать так:
import cgi
import MySQLdb

MyDB=MySQLdb.connect(host='localhost', user='root', passwd='', db='serv')
cursor=MyDB.cursor()
cursor.execute("""SELECT * FROM IndexPage WHERE id=2""")
zg1=cursor.fetchall()
zp=cgi.FieldStorage()
p=zp.has_key('pages')
lixt='lrof'
title='{TITLE}'
Block1='{BLOCK_1}'

if p==1:
print 'Content-Type: text/html\n'
sh=open(r'themplates/sh2')
res=sh.read()
xen=res.replace(lixt,'refr')
xen=xen.replace(title,'Название страницы')
xen=xen.replace(Block1,'Текст первого блока')
print xen
print zg1
то тогда отображается страница полностью и в низу где
должно выводиться print zg1 выводится строка
((2L, ‘\xc7\xe0\xe3\xee\xeb\xee\xe2\xee\xea \xe2\xf2\xee\xf0\xee\xe3\xee \xe1\xeb\xee\xea\xe0’, ‘\xf2\xe5\xea\xf1\xf2 \xe2\xf2\xee\xf0\xee\xe3\xee \xe1\xeb\xee\xea\xe0’),)
Подскажите в чём у меня ошибка.
Подскажите ещё пожалуйста как выбрать данные из конкретной ячейки таблицы базы данных и что бы данные отображались корректно, а не строка с абракадаброй вроде той что я выше написал.
Заранее благодарю.
zheromo
fetchall - возвращает список результатов, который тоже является списком
т.е. там не строка


    a,b,c = zg1[0]
xen=res.replace(lixt,a)
xen=xen.replace(title,b)
xen=xen.replace(Block1,c)
про конкретную ячейку
должно быть примерно так

cursor.execute("""SELECT title FROM table WHERE id=2;""")
(title,) = cursor.fetchone()
Fe_DoS
zheromo спасибо за помощь, разобрался теперь всё в порядке.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB