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

الموضوع: مشكلة مع الدالة eval عند استبدال المتغيرات في التامبلت .

  1. #1
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247

    مشكلة مع الدالة eval عند استبدال المتغيرات في التامبلت .



    لدي برنامج أقوم فيه بتخزين القوالب داخل قاعدة البيانات ثم أقوم باستخراجها لاحقا باستخدام الدالة eval لتنسيق المخرجات من قاعدة البيانات .

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

    كود PHP:
    @mysql_connect("$server""$db_user""$db_pass");
    @
    mysql_select_db("$database");
    $res=mysql_query("SELECT * FROM info");
    while ( 
    $row mysql_fetch_array($res)){
            
    $name=$row[name];
            
    $comm=$row[comm];


            
    $W mysql_query("SELECT * FROM templates WHERE (id = 1)");
            while (
    $rot=mysql_fetch_array($W))
            {
            
    $temp_aot $rot["tamp_code"] ;
            
    $temp_aot=str_replace('"',"'",$temp_aot);
            eval(
    "\$temp_aot = \"$temp_aot\";");
            echo 
    $temp_aot;
            }
           } 
    المشكلة ياشباب إني جربت الدالة هذي مع متغير ذو قيمة واحدة وقامت بعملها بالشكل المطلوب حيث استبدلت المتغير بقيمته في التامبلت

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

    مثلا .. التامبلتس لعرض البيانات هكذا :



    بيانات المشاركين
    ------------------------------------------------------------
    $row[name]
    ------------------------------------------------------------
    $row[comm]


    فالدالة تقوم بتكرار عنوان الصفحة والجدول لكل مشاركة بالطريقة التالية:


    بيانات المشاركين
    ------------------------------------------------------------
    العضو الأول
    ------------------------------------------------------------
    المشاركة الأولى


    بيانات المشاركين
    ------------------------------------------------------------
    العضو الثاني
    ------------------------------------------------------------
    المشاركة الثانية


    بيانات المشاركين
    ------------------------------------------------------------
    العضو الثالث
    ------------------------------------------------------------
    المشاركة الثالثة









    واللي أبيه طبعا أن يكون عنوان الصفحة واحد فقط في الأعلى ثم جدول واحد لجميع الأعضاء بمشاركاتهم تحت بعض دون إعادة تكرار للجدول والعنوان بين كل مشاركة وأخرى





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه
    Dr.Server غير متواجد حالياً


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    291


    الحل الافضل استخدم Class template .... افضل لك ....

    بالنسبة للكود ...

    برايي نفس التمبلت هذا خليه يكون فيه بس
    كود:
    <tr><td>AName</td><td>AReplay</td></tr>
    وقبله تمبلت لرأس الجدول و بعده لاخر الجدول .... يعني الجزء اللي تسوي له eval يكون قابل للتكرار .. فهمت قصدي ؟





    [Dynamic] غير متواجد حالياً

  3. #3
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    مرحبا أخي ديناميك واشكرك على التعقيب .. فاهم عليك عزيزي

    إذا باسوي طريقتك فمعناته أني أسوي ثلاث قوالب لكل جدول في البرنامج

    وهذي بتزود عدد التامبلت في القاعدة وبتزيد أيضا من كمية الاستعلامات إذا كان على كل جدول زي كذا

    هو ممكن إني أضيف للكود السابق بحيث يقوم بإنشاء الجدول ووضع البيانات داخله بدون تكرار .. لكني أريد فصل الكود البرمجي نهائيا عن أوامر التنسيق


    وبانتظار حلول واقتراحات جديدة .. شاكر لك مرة أخرى مرورك على الموضوع





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه
    Dr.Server غير متواجد حالياً

  4. #4
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    على فكرة .. ياليت توضيح للمقصود بـ Class template

    فما زلت أبحث عن أسهل الطرق لفصل الكود البرمجي عن التصميم .. فإذا ما أخذنا من وقتك لو توضح طريقة عملها





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه
    Dr.Server غير متواجد حالياً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    291


    اقصد مثل هذا
    http://templatepower.codocad.com/

    الموقع فيه documentation و examples

    وكل شي تحتاج تعرفه عن هذا ال Class





    [Dynamic] غير متواجد حالياً

  6. #6
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    مشكور أخي ديناميك جزاك الله خير على المعلومة

    وأتمنى الحصول على طريقة معينة للتامبلت تكون واضحة وبدون مشاكل لأني جربت طرق كثيرة وفيها مشاكل ..

    سأقرأ عن هذا النظام وأحاول تطبيقه

    شكرا لك





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه
    Dr.Server غير متواجد حالياً

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    291


    انا استخدم هذا ال Class ..... و مافيه اي مشاكل .... و استدامه سهل جدا ....

    (بعد ما تقرا التعليمات) .... مستعد اجاوبك على اي استفسار ...





    [Dynamic] غير متواجد حالياً

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Apr 2001
    المشاركات
    78


    السيد Dr.Server مشكلتك حلها سهل جدا
    قم بفصل جدول العنوان عن جدول البنود
    قم بتطبيق التكرار على جدول البنود بشكل عادي ثم بعد ذلك احظر قالب العنوان وطبق عليه الداله لكي تضع البنود داخل قالب العنوان مثال :

    كود PHP:
    //لو افترضنا ان قالب العنوان هو 
    $title_T "بيانات المشاركين<BR>
    ------------------------------------------------------------
    <BR>
    $item";
    //لو افترضنا ان قالب البنود هو
    $item_T "$row[name] <BR>
    ------------------------------------------------------------<BR>
    $row[comm]<BR>
    ------------------------------------------------------------<BR>"
    ;
    $title_T str_replace('"',"'",$title_T);
    $item_T str_replace('"',"'",$item_T);
    $res=mysql_query("SELECT * FROM info");
    while (
    $row mysql_fetch_array($res))
    {
        
    $name $row[name];
        
    $comm $row[comm];
        
    $temp_aot $item_T;
        eval(
    "\$temp_aot =\"$temp_aot\";");
        
    $item .= $temp_aot;
    }
    eval (
    "\$title_T = \"$title_T\";");
    echo 
    $title_T






    __________________
    مبرمج ومصمم المواقع التالية :
    kifee.com
    f3f3.com
    alibabaa.com
    jawal4arab.com
    والجاي أحلى :cool:
    fasal غير متواجد حالياً

  9. #9

    بسم الله الرحمن الرحيم



    السلام عليكم ورحمة الله وبركاته

    تحية طيبة وبعد

    اخوي انا لدي قالب استخدمه فيه ميزة ليست موجودة في اشهر القوالب وانا لن اجبر احد على استخدامه لأنه لا أحد يصدقني فلقد برمجة هذا القالب واستطعت ان افصل به الكود البرمجي تماماً عن المحتوى ولايوجد في المحتوى اي متغيرات php وذلك لأن قمت ببرمجة طريقة تسمى macro تمكنك هذه الطريقة من عمل دوال بلغة html ويتم تحويلها بشكل تلقائي إلى دوال php تعمل من ضمن اللغة

    ولكن للأسف لا أحد يصدقني ولكن إذا كنت تريد القالب مع الشرح القالب
    إليك العنوان : اضغط هنا

    وفكرة هذا القالب بسيطة جداً ولن تتعبك فكل ماتحتاج اليه هو ملفات html تحتوي ضمنها متغيرات قوالب وليس متغيرات php

    اما اذا كانت لديك مشكلة كالتي وضعتها هنا فبإمكانك عمل ثلاث دوال html ضمن ملف macro وهو سيكون بعيداً عن php و html وسيقوم القالب بقراءة هذا الملف وتحويله الى دوال تعمل من ضمن php
    يعني لن تضطر لكتابة متغير واحد ضمن html
    وصدقني ان هذه الميزة ليست موجودة حتى في smarty الخاص ب php
    فلقد بحثت عنها قبل برمجتها ولكن لم اجد قالب يقوم بتكوين دوال html ثم تحويلها لتعمل كدالة php

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

    وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل

    أخوك عبدالله عيد





    __________________
    قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
    عبدالله عيد غير متواجد حالياً

  10. #10
    عضو فعال
    تاريخ التسجيل
    Nov 2002
    المشاركات
    1,602
    all-the-vb غير متواجد حالياً

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2003
    المشاركات
    305


    اخوي عبد الله .. ينقص نظام القوالب حقك شي مهم الصراحة ..
    اللي هوا الـManual أو شرح وافي .. اذا سمحت
    واتمنى لو يكون كتيبك القادم هو عن نظام القوالب << واحد كلح

    أتمنى لك كل التوفيق والنجاح ..





    __________________
    # مشاريع :
    - الفوائد .. خلاصة العلم والمعرفة
    - غواصة .. اجمع اصدقاءك وابحر بالغواصة

    # مدونتي nawaf.me
    العملاق غير متواجد حالياً

  12. #12
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    فيصل ألف ألف شكر لك ياغالي على شرحك
    عبدالله شاكر لك ونزلت القالب للتجربة
    عدام تسلم وخيرك سابق وسأقوم بمراجعة البرنامج لدي
    وشاكر للجميع على مشاركتكم وبارك الله فيكم





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه
    Dr.Server غير متواجد حالياً





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

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

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