البرمجة

تحديث قاعدة البيانات باستخدام AJAX و PHP

في البداية، يجدر بنا فهم أن الكود الذي قدمته يتعلق بتحديث القيمة في قاعدة البيانات بناءً على نتيجة اللعبة. يبدو أن لديك صفحتين، إحداها تحتوي على نموذج لإدخال القيمة، والأخرى تحدث قاعدة البيانات بناءً على نتيجة اللعبة.

لحل مشكلتك، يجب أولاً فهم أن متغير $_SESSION['wonorlose'] لا يتم تحديثه بشكل صحيح في صفحة اللعبة (Page 1). عندما تقوم بتحديث القيمة باستخدام $_SESSION['wonorlose'] = $_GET["wonorlose"];، يتم تخزين القيمة في الجلسة ولكن لا تُرسل هذه القيمة إلى الصفحة الثانية (Page 2).

لحل هذه المشكلة، يمكنك استخدام AJAX لإرسال القيمة إلى الصفحة الثانية بعد نتيجة اللعبة. لديك بالفعل بعض الشيفرة المختصرة في الصفحة الأولى، ولكن يحتاج الأمر إلى تعديل بسيط لضمان نقل القيمة بشكل صحيح. يمكنك تحديث الكود كما يلي:

javascript
function rollHead(){ // الشيفرة الحالية... // حدث الجلسة فقط إذا كانت القيمة موجودة في النموذج if(isset($_GET["wonorlose"])){ $_SESSION['wonorlose'] = $_GET["wonorlose"]; } ?> // الشيفرة الحالية... // بمجرد تحديد الفائز أو الخاسر، قم بإرسال القيمة إلى الصفحة الثانية var ajax = new XMLHttpRequest(); ajax.open('POST','update_database.php',true); ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ajax.send('wonorlose=' + encodeURIComponent('wonorlose']; ?>)); }

بعد ذلك، في الصفحة الثانية (update_database.php)، قم بتحديث الكود لاستقبال القيمة وتحديث قاعدة البيانات:

php
session_start(); $wonorlose = $_POST['wonorlose']; // تأكد من أن القيمة موجودة وليست فارغة if(isset($wonorlose) && $wonorlose != ''){ // أدخل هنا الشيفرة الخاصة بتحديث قاعدة البيانات $_SESSION['wonorlose'] = $wonorlose; echo $wonorlose; mysql_query("UPDATE `users` SET money=money+'$wonorlose' WHERE user_id=".$_SESSION['user']); } ?>

تأكد من تحقيق التعديلات اللازمة وتكاملها بشكل صحيح في الكود. الآن، عند تحديث القيمة في الجلسة، ستتم إرسالها بشكل صحيح إلى الصفحة الثانية، ويجب أن تتم عملية تحديث قاعدة البيانات بنجاح.

المزيد من المعلومات

بالطبع، دعوني أقدم لك توضيحًا أكثر حول الكود والتغييرات التي تم إجراؤها:

في الصفحة الأولى (Page 1):

  1. تم إضافة شيفرة PHP لتحديث قيمة $_SESSION['wonorlose'] عند استلام القيمة من النموذج. هذا يضمن تحديث القيمة في الجلسة.

  2. تم تعديل شيفرة AJAX لإرسال القيمة المحدثة ($_SESSION['wonorlose']) إلى الصفحة الثانية (update_database.php) باستخدام الطريقة POST.

في الصفحة الثانية (update_database.php):

  1. تم استخدام $_POST['wonorlose'] لاستلام القيمة المرسلة عبر AJAX.

  2. تم التحقق من وجود القيمة وعدم فراغها قبل تحديث قاعدة البيانات. هذا يمنع التحديثات غير المرغوب فيها في حال كانت القيمة غير معرفة.

  3. تم إضافة session_start(); في بداية الصفحة لضمان بدء الجلسة والوصول إلى $_SESSION.

  4. تم استخدام mysql_query لتحديث قيمة المال في قاعدة البيانات. يُفضل استخدام استعلامات PDO أو MySQLi الحديثة لتحسين أمان الكود.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر