السلام عليكم ورحمة الله وبركاته
تحياتي لكم أخواني أنا أسف على الأزعاج بس أذا ممكن شرح طريقة عمل سكربت تصويت وشكراً لكم
السلام عليكم ورحمة الله وبركاته
تحياتي لكم أخواني أنا أسف على الأزعاج بس أذا ممكن شرح طريقة عمل سكربت تصويت وشكراً لكم
هو عبارة عن جدولين في قاعدة البيانات ، جدول للتصويت (استبيان) وجدول لبنوده.
CREATE TABLE `polls` ( `pollid` int(10) NOT NULL auto_increment, `polltitle` varchar(180) NOT NULL, # عنوان التصويت `jdate` date NOT NULL default '0000-00-00', `totalvotes` int(10) NOT NULL default '0', # عدد المقترعين `is_close` smallint(1) NOT NULL default '0', # لإغلاق التصويت PRIMARY KEY (`pollid`) ) ENGINE=MyISAM; CREATE TABLE `votes` ( `votid` int(10) NOT NULL auto_increment, `votename` varchar(180) NOT NULL, # اسم البند `counter` int(10) NOT NULL default '0', # كم مرة تم اختياره ؟ `pollid` int(10) NOT NULL default '0', # رقم التصويت للربط بين الجدولين PRIMARY KEY (`votid`) ) ENGINE=MyISAM;
ولنفترض أنك أضفت تصويت لقاعدة البيانات ، ورقم التصويت هو 1
فللاستعلام لأخذ بيانات التصويت :
SELECT pollid, polltitle, totalvotes FROM polls WHERE (pollid='1')
ثم لأخذ بنود التصويت لوضعها إما في فورم التصويت أو لنتائجه
SELECT votid, votename, counter, counter/100*totalvotes AS width FROM votes, polls WHERE (votes.pollid ='1') AND (votes.pollid = polls.pollid)
حيث أن [ counter/100*totalvotes AS width ] لحساب نسبة كل بند من عدد المقترعين لإخراج النسبة المؤية لتكون هي عرض الصورة في نتائج التصويت
ثم لتحديث بنود التصويت بالزيادة على قيمها إن حصل اقتراع عليها فتتم الزيادة على قيمة عدد المصوِّتين للبند في جدول البنود votes ، ولعدد المصوّتين الإجمالي في جدول التصويت الرئيسي polls
UPDATE votes SET counter = counter + 1 WHERE (votid = '{ رقم البند الذي تم اختياره})'
UPDATE polls SET totalvotes = totalvotes + 1 WHERE (pollid = '1')ولتسامحني أخي الكريم أني لم أضع أكواد html لوضوح الفكرة - إن شاء الله - ولاختلاف الناس في تنسيقها.
ملاحظة هذه طريقة التصويت إذا كان يحتوي على سؤال واحد، ولكن إذا كنت تريده يحتوي على عدة أسئلة ولكل سؤال عدة اجوبة لها طريقة أخرى مطولة.
ولو وافيت ربك دون ذنب *** وناقشك الحساب إذاً هلكتا
ولم يظلمك في عملٍ ولكن *** عسير أن تقوم بما حملتا
ألف شكر لك أخي الكريم :)
طريقة رائعة شكراً لك
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…