شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو نشيط
#1  
ما الخطأ في هذا الكود ارجو المساعدة

السلام عليكم ورحم الله
ارجو من الاخوة الخبراء في php ان يطلعوني على الخطأ الموجود في هذا الكو د حيث ان العمليات الحسابية لا تتم بشكل صحيح
لدينا جدولين واحد لاسماء المستخدمين ومعلوماتهم ورصيدهم وآخر لمعلومات بطاقات تعبئة الرصيد
المطلوب هو اخذ القيمة من جدول البطاقات values عندما رقم البطاقة السري يساوي الرقم المدخل
وأخذ قيمة رصيد المستخدم من جدول المستخدمين pts
وجمعهما
ثم تحديث جدول المستخدمين ووضع قيمة الرصيد الجديدة الناتجة عن جمع القيمتين قيمة رصي المستخدم + قيمة البطاقة
قمت بتجربة الكود ولكن يبدو ان هناك مشكلة ما حيث ان المتغير $ardvalue يكون فارغا وا يحمل اي قيمة
وكذلك المتغير $pts
أو ربما عمية الجمع لا تتم او انني كتبت الود بشكل خاطئ
ارجو المساعدة بارك الله فيكم واحسن الله اليكم

كود PHP:
<html>
<body>
<?
$date
date ("j/n/y");
$conn mysql_connect ("localhost","root","")
    or die (
"هناك خطأ في الاتصال بقواعد البيانات  يرجى مراسلتنا على [email]sdfadfsdsfsdwss@hotmail.com[/email]");

$sql mysql_db_query ("database","select values from cards where secret_number = '$secret_number' and status = '1'");
while (
$row mysql_fetch_array ($sql)) {
$cardvalue $row[values];

}
$hash=MD5($Password);
$sql2 mysql_db_query ("database","select pts from users_accounts where user_name = '$user_name' and password = '$hash'");
while (
$row mysql_fetch_array ($sql2)) {
$pts $row[pts];
}
$new_value $pts $cardvalue;

if (
$new_value>$cardvalue>0) {
$updatecards mysql_db_query ("database","UPDATE `cards` SET , `status` = '1', `for_user` = '$user_name', `date` = '$date' WHERE `secret_number` = `$secret_number`");
$updatepts mysql_db_query ("database","UPDATE `users_accounts` SET `pts` = '$new_value' WHERE `user_name` = `$user_name`");
}else{
echo 
"لم يتم اضافة القيمة الى رصيدك تأكد من اسم المستخدم وكلمة المرور ورقم البطاقة السري ثم أعد المحاولة مرة أخى";
}
<?
</
body>
</
html>






i2h.org is offline   قديم 04-08-2006, 09:46 AM
الرد مع إقتباس
عضو فعال
#2  

عزيزي المشكلة بسيطة جدا إن شاء الله ..


الفكرة هي ، قبل اي استعلام يجب ان تسال نفسك .. النتيجة او ال result من عملية الاستعلام ممكن يكون اكثر من نتيجة ؟

لا ؟ اذا لا داعي لاستعمال while

لأن النتيجة ستكون واحدة باي من الاحوال

هذا هو نفس كود :
كود PHP:
 <html> 
<body> 
<? 
$date
date ("j/n/y"); 
$conn mysql_connect ("localhost","root",""
    or die (
"هناك خطأ في الاتصال بقواعد البيانات  يرجى مراسلتنا على [email]sdfadfsdsfsdwss@hotmail.com[/email]"); 

$sql mysql_db_query ("database","select values from cards where secret_number = '$secret_number' and status = '1'"); 
$row mysql_fetch_array ($sql); 
$cardvalue $row[values]; 

$hash=MD5($Password); 
$sql2 mysql_db_query ("database","select pts from users_accounts where user_name = '$user_name' and password = '$hash'"); 
$row mysql_fetch_array ($sql2);
$pts $row[pts]; 

$new_value $pts $cardvalue

if (
$new_value>$cardvalue>0) { 
$updatecards mysql_db_query ("database","UPDATE `cards` SET , `status` = '1', `for_user` = '$user_name', `date` = '$date' WHERE `secret_number` = `$secret_number`"); 
$updatepts mysql_db_query ("database","UPDATE `users_accounts` SET `pts` = '$new_value' WHERE `user_name` = `$user_name`"); 
}else{ 
echo 
"لم يتم اضافة القيمة الى رصيدك تأكد من اسم المستخدم وكلمة المرور ورقم البطاقة السري ثم أعد المحاولة مرة أخى"

<? 
</
body
</
html>


المشكلة كانت أن المتغيرات داخل while يتم اعتبارها local variable ولا يمكنك استخدام قيمها خارج ال while إلا بطريقة واحدة .. وهي تعريفها global

هذا او انك تستبعد ال while تماما إن لم تكن بحاجة إليها .. كما فعلت في الكود المرفق


تحياتي






__________________
Ahmed Ehab
أستاذ سوفت !
facebook me - tweet me
Egyptechno is offline   قديم 04-08-2006, 09:56 AM
الرد مع إقتباس
عضو نشيط
#3  

بارك الله فيك اخي الكريم ولك جزيل الشكر على سرعة الرد

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






i2h.org is offline   قديم 04-08-2006, 10:29 AM
الرد مع إقتباس
عضو سوبر نشيط
#4  

إقتباس:
المشاركة الأصلية بواسطة Egyptechno
عزيزي المشكلة بسيطة جدا إن شاء الله ..



المشكلة كانت أن المتغيرات داخل while يتم اعتبارها local variable ولا يمكنك استخدام قيمها خارج ال while إلا بطريقة واحدة .. وهي تعريفها global


تحياتي

ممكن لو سمحت تشرحلنا ازاي الطريقه ؟

وجزاك الله خيرا






king vb is offline   قديم 04-08-2006, 06:12 PM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح



جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 05:09 PM.