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

الموضوع: ارجو تصحيح الكود الذي كتبته

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

    ارجو تصحيح الكود الذي كتبته



    سلام عليكم

    عملت داله وظيفتها تكرار الحقول علي حسب الرقم الي اضعه مع اسم المتغير مثال :

    كود PHP:
    function dbform($num,$name)
    {
        
    $test "";
        
    $name explode(".",$name);
        for (
    $i 0;$i count($num); $i++)
        {
            if (
    $num[$i] == 0)
            {
                die(
    "ERROR");
                exit;
            }
            
    $test .= "<input type=\"txt\" name=".$name[$i].">";
        }
        return 
    $test;

    طريقه تشغيله :


    كود PHP:
    print dbform("2","user.pass"); 
    دائماَ اذا وضعت رقم تكرار حقل مثل 4 او 6 مايكررها لي بس يعطيني مره وحده :

    <input type="txt" name=user>

    وانا حاط شرط اذا كان الرقم المدخل 0 يعطي كلمه خطا تمام بس المشكله هي عدم تكرار علي حسب الرقم المدخل علي الداله

    ارجو ايضاح اين الخطا







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


    وعليكم السلام

    خطأك في

    كود:
    count($num)
    هذه راح تعطيك نتيجه صفر


    المفروض تكون

    كود:
        for ($i = 0;$i < $num; $i++) 
        {

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

    كود PHP:
    <?php
     
    function dbform($num,$name

            if (
    $num == 0
            { 
                die(
    "ERROR"); 
                exit; 
            } 


        
    $test ""
        
    $name explode(".",$name); 
        for (
    $i 0;$i $num$i++) 
        { 

            
    $test .= "<input type=\"txt\" name=".$name[$i].">\n"
        } 
        return 
    $test
    }  

    print 
    dbform("2","user.pass");  

    ?>
    محمد





    __________________
    محلل لنظم المعلومات - ارسل لي رساله خاصه عبر المنتدى | join me on facebook / twitter
    php | flash&flex&air actionscript 2,3 | ajax&javascript | database pro Analyzer

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


    تسلم يا باطل

    لاكن ليش ماكررها وانا حاط داله count علي شان يكرر الحلقه علي حسب رقم الي اكتبه بمتغير num ؟

    وشي ثاني الكود يعمل سواء كان شرط داخل الحلقه او خارجها ليش تفظل عمل الشرط خارج الحلقه وشكرا






  4. #4
    عضو شرف
    تاريخ التسجيل
    Mar 2003
    المشاركات
    1,899


    هلا اخي الله يسلمك

    اولا count تبطئ من عملية for

    لان for في كل مره راح "تحسب count " القيمه للمتغير $num

    ثانيا بعض الاحيان count ترجع لك القيمه صفر ..... لماذا ؟

    لان count تستخدم مع المصفوفات array والمتغير $num هنا هو مجرد variable وليس مصفوفه


    الطريقه الصحيحه هي " مع المصوصفات "

    كود:
    $num_size=count($num);
    for ($i = 0;$i < $num_size; $i++) {
    ...
    }
    هنا جعلنا for لاتقوم في كل مره بحساب عدد المتغيرات داخل مصفوفه وهذا يجعل البرنامج اسرع بكثير خصوصا لو كانت المصفوفه مثلا تحتوي على الالاف من القيم









    بالنسبه لسؤالك الثاني

    دائما يجب عليك ان تقوم بمعرفة ما اذا كانت المدخلات صحيحه او لا قبل البدأ بالتنفيذ

    مثلا انت لديك خطأ اخر وهو ال $name

    ماذا لو ادخل المستخدم

    كود:
    dbform("5","user.pass");
    لاحظ انها 5 وهناك اسمين فقط

    اذا تقوم بالتالي :

    كود:
        $name = explode(".",$name); 
        $name_size = count($name);
        if($name_size != $num){
                die("ERROR");  
                exit; 
    	}
    لاحظ انني استخدمت count هنا والسبب ان $name اصبح مصفوفه ونريد حساب عدد القيم بداخلها

    اذا يصبح الكود بالشكل التالي :

    كود PHP:
    <?php 
     
    function dbform($num,$name)  
    {  
    if (
    $num == 0){  
        die(
    "ERROR");  
        exit;  
    }  

        
    $name explode(".",$name); 
        
    $name_size count($name);
        if(
    $name_size != $num){
                die(
    "ERROR");  
                exit; 
        }
        
    $test "";  

        for (
    $i 0;$i $num$i++)  
        {  

            
    $test .= "<input type=\"txt\" name=".$name[$i].">\n";  
        }  
        return 
    $test;  
    }   

    print 
    dbform("2","user.pass");   

    ?>


    كود:
    dbform("2","user.pass");  // صحيحه
    dbform("3","user.pass");  // خاطئه
    dbform("2","user.pass.id");  // خاطئه

    محمد





    __________________
    محلل لنظم المعلومات - ارسل لي رساله خاصه عبر المنتدى | join me on facebook / twitter
    php | flash&flex&air actionscript 2,3 | ajax&javascript | database pro Analyzer

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2007
    المشاركات
    393


    كود PHP:
    dbform("2","user.pass");  // صحيحه
    dbform("3","user.pass");  // خاطئه
    dbform("2","user.pass.id");  // خاطئه 
    عذرا للمداخلة ..

    طيب من الاساس ليش تكتب المتغير الاول ؟ ليش مايكون البرنامج يحسبه :
    كود PHP:
    <?php 
     
    function dbform($name)  
    {  


        
    $test "";  
        
    $name explode(".",$name);  
        
    $numcount($name);
        for (
    $i 0;$i $num$i++)  
        {  

            
    $test .= "<input type=\"txt\" name=".$name[$i].">\n";  
        }  
        return 
    $test;  



    dbform("user.pass");
    -----

    اخوي محمد يعطيك العافية هناك ملاحظة بسيطة
    كود PHP:
    die("ERROR");   
        exit; 
    exit لن تنفذ

    ----------


    تحياتي





    __________________
    موقعي الشخصي
    www.Flasher.ws

    جزيرة الفنون
    www.Artsisland.net

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


    اقتباس المشاركة الأصلية كتبت بواسطة MohDesign
    هلا اخي الله يسلمك

    اولا count تبطئ من عملية for

    لان for في كل مره راح "تحسب count " القيمه للمتغير $num

    ثانيا بعض الاحيان count ترجع لك القيمه صفر ..... لماذا ؟

    لان count تستخدم مع المصفوفات array والمتغير $num هنا هو مجرد variable وليس مصفوفه


    الطريقه الصحيحه هي " مع المصوصفات "

    كود:
    $num_size=count($num);
    for ($i = 0;$i < $num_size; $i++) {
    ...
    }
    هنا جعلنا for لاتقوم في كل مره بحساب عدد المتغيرات داخل مصفوفه وهذا يجعل البرنامج اسرع بكثير خصوصا لو كانت المصفوفه مثلا تحتوي على الالاف من القيم









    بالنسبه لسؤالك الثاني

    دائما يجب عليك ان تقوم بمعرفة ما اذا كانت المدخلات صحيحه او لا قبل البدأ بالتنفيذ

    مثلا انت لديك خطأ اخر وهو ال $name

    ماذا لو ادخل المستخدم

    كود:
    dbform("5","user.pass");
    لاحظ انها 5 وهناك اسمين فقط

    اذا تقوم بالتالي :

    كود:
        $name = explode(".",$name); 
        $name_size = count($name);
        if($name_size != $num){
                die("ERROR");  
                exit; 
    	}
    لاحظ انني استخدمت count هنا والسبب ان $name اصبح مصفوفه ونريد حساب عدد القيم بداخلها

    اذا يصبح الكود بالشكل التالي :

    كود PHP:
    <?php 
     
    function dbform($num,$name)  
    {  
    if (
    $num == 0){  
        die(
    "ERROR");  
        exit;  
    }  

        
    $name explode(".",$name); 
        
    $name_size count($name);
        if(
    $name_size != $num){
                die(
    "ERROR");  
                exit; 
        }
        
    $test "";  

        for (
    $i 0;$i $num$i++)  
        {  

            
    $test .= "<input type=\"txt\" name=".$name[$i].">\n";  
        }  
        return 
    $test;  
    }   

    print 
    dbform("2","user.pass");   

    ?>


    كود:
    dbform("2","user.pass");  // صحيحه
    dbform("3","user.pass");  // خاطئه
    dbform("2","user.pass.id");  // خاطئه

    محمد

    الله يزيدك علم اخوي محمد وينفعك بعلمك ردك لي وضح لي شغله مهمه السطر هذا :

    لان count تستخدم مع المصفوفات array والمتغير $num هنا هو مجرد variable وليس مصفوفه

    وبنسبه لتوضيح الثاني بخصوص اسماء الحقول اذا كان :

    dbform("5","user.pass");

    اكيد في مشكله عندنا تكرار خمس حقول ومتغيرين فقط كنت حاليا اكمل الكود ونت مشاء الله سبقتني انا فقط كنت محتار من عدم تكرار والباقي بسيط بارك الله فيك






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


    اقتباس المشاركة الأصلية كتبت بواسطة Flasher
    كود PHP:
    dbform("2","user.pass");  // صحيحه
    dbform("3","user.pass");  // خاطئه
    dbform("2","user.pass.id");  // خاطئه 
    عذرا للمداخلة ..

    طيب من الاساس ليش تكتب المتغير الاول ؟ ليش مايكون البرنامج يحسبه :
    كود PHP:
    <?php 
     
    function dbform($name)  
    {  


        
    $test "";  
        
    $name explode(".",$name);  
        
    $numcount($name);
        for (
    $i 0;$i $num$i++)  
        {  

            
    $test .= "<input type=\"txt\" name=".$name[$i].">\n";  
        }  
        return 
    $test;  



    dbform("user.pass");
    -----

    اخوي محمد يعطيك العافية هناك ملاحظة بسيطة
    كود PHP:
    die("ERROR");   
        exit; 
    exit لن تنفذ

    ----------


    تحياتي

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

    انا عن نفسي ماحب الاختصار ،،

    مشكورين علي المداخلات الرائعه وتوضيح وسلام عليكم






  8. #8
    عضو شرف
    تاريخ التسجيل
    Mar 2003
    المشاركات
    1,899


    السلام عليكم

    رررررهيب يا فلاشر والله ماجات على بالي

    بالنسبه ل exit مدري والله عنها ماانتبهت بالمره بالطبع ان نفذت die انتهى الاسكريبت وخرج

    اخوي My Soul Mate الاختصار في البرمجه افضل لانه راح يسرع عملية التنفيذ

    مثلا

    كود:
    $a ? $b="nice"; : $b="bad";
    هو نفسه

    كود:
    if ($a){
    $b="nice";
    }else{
    $b="bad";
    }
    حيث ? هي if و : هي else

    طبعا الكود الاول مختصر و "اسرع" بالتنفيذ

    الكود اللي كتبه flasher ممتاز جدا


    محمد





    __________________
    محلل لنظم المعلومات - ارسل لي رساله خاصه عبر المنتدى | join me on facebook / twitter
    php | flash&flex&air actionscript 2,3 | ajax&javascript | database pro Analyzer





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

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

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