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

السؤال

نشر

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

Recommended Posts

  • 0
نشر

فيما يلي كود PHP بسيط يسمح للمستخدم بحذف رسالة مرسلة إلى جميع المستخدمين:  

<?php

// Connect to the database
$db = mysqli_connect("host", "username", "password", "database");

// Check if the user has submitted the form
if (isset($_POST['delete'])) {
  // Get the message id from the form
  $id = $_POST['id'];

  // Delete the message from the database
  $sql = "DELETE FROM messages WHERE id='$id'";
  mysqli_query($db, $sql);

  // Redirect the user back to the messages page
  header("Location: messages.php");
  exit;
}

// Get the message id from the URL
$id = $_GET['id'];

// Retrieve the message from the database
$sql = "SELECT * FROM messages WHERE id='$id'";
$result = mysqli_query($db, $sql);
$message = mysqli_fetch_assoc($result);

?>

<!-- Display the message and the delete form -->
<h2><?php echo $message['subject']; ?></h2>
<p><?php echo $message['body']; ?></p>

<form action="" method="post">
  <input type="hidden" name="id" value="<?php echo $id; ?>">
  <input type="submit" name="delete" value="Delete">
</form>

يستخدم هذا البرنامج النصي قاعدة بيانات MySQL لتخزين الرسائل. ستحتاج إلى استبدال "المضيف" و "اسم المستخدم" و "كلمة المرور" و "قاعدة البيانات" بالقيم المناسبة لإعدادك.

عندما يرسل المستخدم النموذج ، يتم حذف الرسالة من قاعدة البيانات وإعادة توجيه المستخدم مرة أخرى إلى صفحة الرسائل. إذا لم يرسل المستخدم النموذج ، يقوم البرنامج النصي باسترداد الرسالة من قاعدة البيانات ويعرضها مع نموذج الحذف.

  • 0
نشر
بتاريخ 48 دقائق مضت قال بلال زيادة:

فيما يلي كود PHP بسيط يسمح للمستخدم بحذف رسالة مرسلة إلى جميع المستخدمين:  

<?php

// Connect to the database
$db = mysqli_connect("host", "username", "password", "database");

// Check if the user has submitted the form
if (isset($_POST['delete'])) {
  // Get the message id from the form
  $id = $_POST['id'];

  // Delete the message from the database
  $sql = "DELETE FROM messages WHERE id='$id'";
  mysqli_query($db, $sql);

  // Redirect the user back to the messages page
  header("Location: messages.php");
  exit;
}

// Get the message id from the URL
$id = $_GET['id'];

// Retrieve the message from the database
$sql = "SELECT * FROM messages WHERE id='$id'";
$result = mysqli_query($db, $sql);
$message = mysqli_fetch_assoc($result);

?>

<!-- Display the message and the delete form -->
<h2><?php echo $message['subject']; ?></h2>
<p><?php echo $message['body']; ?></p>

<form action="" method="post">
  <input type="hidden" name="id" value="<?php echo $id; ?>">
  <input type="submit" name="delete" value="Delete">
</form>

يستخدم هذا البرنامج النصي قاعدة بيانات MySQL لتخزين الرسائل. ستحتاج إلى استبدال "المضيف" و "اسم المستخدم" و "كلمة المرور" و "قاعدة البيانات" بالقيم المناسبة لإعدادك.

عندما يرسل المستخدم النموذج ، يتم حذف الرسالة من قاعدة البيانات وإعادة توجيه المستخدم مرة أخرى إلى صفحة الرسائل. إذا لم يرسل المستخدم النموذج ، يقوم البرنامج النصي باسترداد الرسالة من قاعدة البيانات ويعرضها مع نموذج الحذف.

عفوا اخي في الكود الذي ارسلته سيقوم الكود بحذف الرساله من قاعدة البيانات وبالتالي سوف تنحذف عند باقي المستخدمين

  • 0
نشر
بتاريخ 13 دقائق مضت قال بلال زيادة:

يجب عليك في وقتها بان تكون بتخزين الرسالة في حقل messages مثلاُ في جميع الاعضاء وبالتالي اليوزر الذي يرى هذه الرسالة يمكنه من تفريغ قيمة الحقل messages لديه فقط 

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

  • 0
نشر
بتاريخ 14 دقائق مضت قال علي الكاسر:

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

يبدو أنك لم تفهم ما قصدته سأرفق لك مثلاً يوضح هذا الأمر 

$user_id = 1;

// Connect to the database
$conn = mysqli_connect("hostname", "username", "password", "database_name");

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// Prepare the update query
$query = "UPDATE table_name SET message = '' WHERE user_id = $user_id";

// Execute the query
$result = mysqli_query($conn, $query);

// Check if the query was successful
if ($result) {
    echo "Column message emptied successfully";
} else {
    echo "Error: " . $query . "<br>" . mysqli_error($conn);
}

// Close the connection
mysqli_close($conn);

لاحظ انه يتم تفريغ حقل message لليوزر بناء على id لخاص به ، أي عندما تقوم بإرسال رسالة إلى جميع الأعضاء يجب عليك تخزين هذه الرسالة في حقل message و من ثم عندما يقوم المستخدم بقراءة هذه الرسالة يمكنه تفريغ هذا الحقل message بناء على id الخاص به . 

  • 0
نشر
بتاريخ 2 ساعة قال بلال زيادة:

لاحظ انه يتم تفريغ حقل message لليوزر بناء على id لخاص به ، أي عندما تقوم بإرسال رسالة إلى جميع الأعضاء يجب عليك تخزين هذه الرسالة في حقل message و من ثم عندما يقوم المستخدم بقراءة هذه الرسالة يمكنه تفريغ هذا الحقل message بناء على id الخاص به . 

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

  • 0
نشر
بتاريخ 49 دقائق مضت قال بلال زيادة:

لكن بكل الأحوال يمكنك أيضا من حذف الرسائل التي مضى عليها وقت طويل بشكل أتوماتيك

نعم هذا الامر حسبت حسابه وليس صعبا يمكن تنفيذه بسهوله. 

هل يمكنك التواصل معي على وات اب او فيس بوك لاشرح لك مشكلتي بشكل ادق 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...