النتائج 1 إلى 4 من 4

الموضوع: ما الخطأ في هذا الكود ارجو المساعدة

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    51

    ما الخطأ في هذا الكود ارجو المساعدة



    السلام عليكم ورحم الله
    ارجو من الاخوة الخبراء في 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>








  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


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


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


    تحياتي





    __________________
    SWF Thumbnail - tweet me

  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    51


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

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






  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    714


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



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


    تحياتي

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

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










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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