اذهب إلى المحتوى

السؤال

نشر (معدل)

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

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر

لتسهيل الأمر سنستخدم قاعدة بيانات SQLite، وإليك مثال بسيط باستخدام بايثون ومكتبة SQLite:

1- إنشاء قاعدة بيانات وجدول

import sqlite3

# اتصال بقاعدة البيانات (ستقوم بإنشاء ملف بنفس موقع السكربت)
conn = sqlite3.connect('database.db')
cursor = conn.cursor()

# إنشاء جدول لتخزين المستخدمين ومنشوراتهم
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL
    )
''')

cursor.execute('''
    CREATE TABLE IF NOT EXISTS posts (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        user_id INTEGER,
        content TEXT NOT NULL,
        timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        FOREIGN KEY (user_id) REFERENCES users(id)
    )
''')

# حفظ التغييرات وإغلاق الاتصال
conn.commit()
conn.close()

2- إضافة مستخدم ومنشورات له

def add_user_and_posts(name, posts):
    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()

    # إضافة المستخدم
    cursor.execute('INSERT INTO users (name) VALUES (?)', (name,))
    user_id = cursor.lastrowid  # استخراج معرف المستخدم الجديد

    # إضافة المنشورات
    for post in posts:
        cursor.execute('INSERT INTO posts (user_id, content) VALUES (?, ?)', (user_id, post))

    # حفظ التغييرات وإغلاق الاتصال
    conn.commit()
    conn.close()

# مثال على إضافة مستخدم ومنشورات
add_user_and_posts('John Doe', ['منشور 1', 'منشور 2', 'منشور 3'])

3- استرجاع أحدث منشور وعرضه

def get_latest_post(user_id):
    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()

    # الحصول على أحدث منشور للمستخدم
    cursor.execute('SELECT content, timestamp FROM posts WHERE user_id = ? ORDER BY timestamp DESC LIMIT 1', (user_id,))
    result = cursor.fetchone()

    # إغلاق الاتصال
    conn.close()

    return result

# مثال على استرجاع أحدث منشور
latest_post = get_latest_post(1)  # حيث 1 هو معرف المستخدم
if latest_post:
    content, timestamp = latest_post
    print(f'أحدث منشور: "{content}" في {timestamp}')
else:
    print('لم يتم العثور على منشورات')

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...