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

كود mysql

بدأه Akkad في 13 مايو 2010 · 8 رد · 882 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي في قاعدة البيانات

My SQL

جدول بطاقات المستخدمين حقل لرصيد البطاقات وحقل لرقم المستخدم

وليكن بالشكل التالي:

balance/ / User_id/

2000 2

1000 2

3000 1

500 3

وعندما أريد استدعاء رصيد المستخدم 2 أكتب الكود التالي

sql=”select sum(balance) from tbl_userCart

Where user_id= 2”

فيظهر لدي الرصيد هو /3000/

فاذا أردت طرح مثلا /100/ من رصيد المستخدم 2 فما هو الكود لهذه العملية

علما انني عندما أضع هذا الكود

sql=”update tbl_userCart

Set balance =2900

Where user_id=2”

فانه يقوم بتعديل أول خانة من رصيد المستخدم 2 أي يقوم بتعديل 2000

ويحولها الى 2900 وهكذا بدلا من انقاص رصيد المستخدم يزداد

تم تعديل هذه المشاركة بواسطة Akkad في 13 مايو 2010 في 18:01

#2

السلام عليكم

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

يعني لو كان لكل مستخدم عندك بطاقه واحده تنحل المشكلة و تعمل ال update التي كتبتها

لكن انت تجمع ارصدة كل البطاقات وتطرح منه القيمه المطلوبه ثم تضيف القيمة الناتجه للجدول

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

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

سبحان الله وبحمده *** سبحان الله العظيم

www.quraany.com

www.arabcs.com

#3

شكرا لك أخ XR.7

ولكن أريد رجاء الكود لمعرفة هل الطرح سيتم عن طريق

mySQl أوPhp

أي هل ساضع متغيرات وأطرح القيمة بواسطة

Php

ومن ثم سأحدث قاعدة البيانات

أو ستتم العملية كلها عن طريق

mysql

#4

يمكنك عن طريق sql كما يلي :

UPDATE tbl_userCart  SET `balance` = `balance`-'100' WHERE user_id= 2 LIMIT 1;

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#5

طبعا كلام الاخ bastr3 صحيح :) ... لكن بتواجه مشاكل اذا كان رصيد البطاقه الاولى لايكفي و تحتاج تخصم من اكثر من بطاقه او تحتاج تستخدم بطاقة غير اقدم بطاقة... لان انت عندك مشكلة اكبر....

اخي حاول تقرأ عن اساسيات قواعد البيانات... حاولت اختار لك رابط لكن... الموضوع يعتمد كثير على خلفيتك في الرياضيات والحاسب.. على اي حال...

ببساطة......

كل جدول لابد يحتوي على عمود فيه قيمة مميزة.... بمعنى جدولك (خطأ)... احد الحلول ربما

Card_Id  ||  User_Id  ||  Balance

بالطريقة هذي اعتقد بتحل المشكلة عن طريق تحديد البطاقة اللي تحتاج تطرح من رصيدها.

-----

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

UPDATE tbl_userCart  SET `balance` = `balance`-'100' WHERE user_id=2 AND `balance`>=`100` LIMIT 1;

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#6

شكرا أخ bastr3 و Ryn

كلامك صحيح كل جدول يجب أن يحتوي على قيمة مميزة وأنا في قاعدة بياناتي قد وضعت في كل جدول حقل يحتوي على قبم مميزة

ولكن وضعت هنا جزء من الجدول بغرض فقط ايصال الفكرة

حسنا ...

كما قلت اذا كان الجدول لدي

Card_Id || User_Id || Balance

بالطريقة هذي كما قلت أخي بتحل المشكلة عن طريق تحديد البطاقة اللي تحتاج تطرح من رصيدها.

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

تم تعديل هذه المشاركة بواسطة Akkad في 14 مايو 2010 في 11:57

#7

شكرا للشباب على الردود الطيبة ، واسف على التاخير

اعتقد الشباب كفو و وفوو

سبحان الله وبحمده *** سبحان الله العظيم

www.quraany.com

www.arabcs.com

#8

طبعا هناك اكثر من طريقة....ممكن..

بالبداية تتأكد ان المسخدم يملك رصيد كافي... شي مثل..

select sum(Balance) from tbl_userCart where User_Id=99

بعد كذا ممكن تبدأ تخصم الرصيد من البطاقات

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#9

من ناحية أخرى حتماً عليك تغيير تصميم قاعدة البيانات الخاصة بك

جدول المستخدمين:

1 رقم المستخدم

2 اسم المستخدم

3 الرصيد

جدول مستخدمين_بطاقات: (وهو جدول يمثل العلاقة n-to-n بين جدولي البطاقات والمستخدمين)

1 رقم المستخدم

2 رقم البطاقة

3 تاريخ الشراء

جدول البطاقات:

1 رقم البطاقة (معرف فقط)

2 قيمة البطاقة (رقم يمثل قيمة البطاقة)

3 نوع البطاقة (ذهبية، فضية، ...)

وعند شراء مستخدم لبطاقة ما تقوم بإضافة رصيدها إلى رصيد المستخدم.

ملاحظة: إن التصميم الذي طرحته أنا يعتمد إن كان لديك فئات من البطاقات ثابتة، أما إن كانت القيمة التي يمكن الشحن بها متغيرة فالتصميم كالتالي:

جدول المستخدمين:

1 رقم المستخدم

2 اسم المستخدم

3 الرصيد

جدول شراء_المستخدمين:

1 رقم المستخدم

2 القيمة التي شحن بها.(قيمة البطاقة التي اشتراها).

3 تاريخ الشراء

أما الطرح فيتم حتماً في جدول المستخدمين من الحقل (الرصيد) في كلتا الحالتين.

إن أردت التوسع في الموضوع فعليك بدراسة أسس تصميم قواعد البيانات وبالأخص (Normalization Forms).

تم تعديل هذه المشاركة بواسطة LordCover في 24 مايو 2010 في 17:41

مؤسس شبكة مواقع إجابتي أول شبكة مواقع عربية للأسئلة والأجوبة

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