عزيزي المشكلة بسيطة جدا إن شاء الله ..
الفكرة هي ، قبل اي استعلام يجب ان تسال نفسك .. النتيجة او ال 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 تماما إن لم تكن بحاجة إليها .. كما فعلت في الكود المرفق
تحياتي