الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة سكربت طباعة جدول قاعدة البيانات في بايثون بشكل مرتب

بدأه احمد وسام في 13 مارس 2013 · 8 رد · 662 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

 

اخواني لدي مشكلة : انا لدي قاعدة بيانات

 

وعامل ي جدول

 

username - pasword

                -

                -

                -

 

وفيه قيم

 

اريد اطبعه هذه الجدولين في بايثون بشكل مرتب كما في اﻻعلى مثل اليوزر نيم فيه قيم ahmed , omar , ali

والباسورد ايضا كذا

ﻻكن مدايظبط معي ابد مداعرف كيف اجعله يطبعهن بالشكل الصحيح

 

هذا الكود

 

import MySQLdb
from cgi import escape
def sql():
	
	con = MySQLdb.connect('localhost','root','1234','signup')
	con.cursor()
	for s in con:
		htmls='<table><tr><td>username</td><td>password></td></tr></table>
		print con.execute('SELECT * FROM Infosign')
		raw = con.fetchall()
		print raw

ﻻ عليكم في السيرفر الي راح اشغل عليه السكربت

 

ﻻكن المهم كيف اربطه بالجدول بشكل مرتب

#2

لماذا لاتستخدم ORDER BY لتحدد كيف تقوم بترتيبه بناء على أي حقل وهل ترتيب تصاعدي أو تنازي في جملة SELECT؟ 

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

ﻻ استاذ تنازلي

 

ﻻكن كيف استعملها هذه الجملة ممكن تضيفها في الكود ارجو منك مساعدتي فاني مللت من كثرة البحث

المهم يطبعه في جدول html

تم تعديل هذه المشاركة بواسطة احمد وسام في 13 مارس 2013 في 22:56

#4

فقط أضف هذا 

 

 SELECT * FROM infosign ORDER BY FIELDNAME DESC

استبدل كلمة FIELDNAME بالحقل الذي تريد ترتيبه 

 

*لاحظ أن الكود لن يطبع عندما تستخدم كلمة print في صورة صف في الجدول 

يجب عليك الحصول على عناصر ال row وتطبعها منفردة في وسم tr

 

*وسم الtable يجب ان يكون قبل ال for وليس داخلها

 

 

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 13 مارس 2013 في 23:08

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

هكذا

con = MySQLdb.connect('localhost','root','1234','signup')
	con.cursor()
	htmls='<table><tr><td>%s</td><td>%s></td></tr></table>'%(raw[0][0],raw[1][1])
	for s in con:
		print con.execute('SELECT * FROM infosign ORDER BY username,password DESC')
		raw = con.fetchall()
		print raw[0][0],[1][1]

 

 

ام ﻻ

 

استاذ الله يوفقك رتبه لي الكود انت رجاءا لكي يبقى في بالي

 

تعبتك معي

#6

عذرا لديك أخطاء عديدة كنت أظن الأساس صحيح في الكود الخاص بك أنظر هنا لتعلم كيفية التعامل مع db api 

http://tuxcoders.sourceforge.net/dokuwiki/doku.php?id=pythonguide:pythonguide_python_mysql

 

 

بعد الإنتهاء من جملة fetchall يصبح لديك جميع الصفوف في الجدول التي قمت بعمل SELECT لها

بعدها قم بعمل loop على الصفوف 

 

 

for row in cursor.fetchall():

تستطيع الوصول لعناصر ذلك الصف عبر ال index

row[0] تعبر عن العمود الأول في ذلك الصف

row[1] تعبر عن العمود الثاني في ذلك الصف

 

ثم

"<tr>"+"<td>"+row[0]+"</td>"+"<td>"+row[1]+"</td>"+"<td>"+row[2]+"</td>"+"</tr>"

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 13 مارس 2013 في 23:51 — السبب: تعديل نقاط موهمة

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#7

ولو اتعبتك معي

 

يقولي اكو خطأ

 

  File "login.py", line 14
    print "<tr>"+<td>"+row[0]+"</td>".....+"</tr>"
                 ^
SyntaxError: invalid syntax
#8

النقاط ضع فيها وسوم td كما تريد ......... لايوجد كود صحيح في بايثون .... انا وضعتها لك ووضعت لك تنبيه أن تستبدلها بشئ مثل هذا

 
"<tr>"+"<td>"+row[0]+"</td>"+"<td>"+row[1]+"</td>"+"<td>"+row[2]+"</td>"+"</tr>"
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#9

اشكرك اخي احمد هذا الصحيح قبل شوي كان اعتقد لديك خطا في عﻻمة التنصيص جزاك الله خيرا لمساعدتك

 

Iاصبح الكود هكذا

 

def sql():
    con = MySQLdb.connect('localhost','root','1234','signup')
    con.cursor()
    con.execute('SELECT * FROM infosign ORDER BY username,password,email DESC')
    raw = con.fetchall()
    for raw in con.fetchall():
	    print "<tr>"+"<td>"+raw[0]+"</td>"+"<td>"+raw[1]+"</td>"+"<td>"+raw[2]+"</td>"+"</tr>"

تم تعديل هذه المشاركة بواسطة احمد وسام في 14 مارس 2013 في 00:04

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…