/
  • مشکل در کار با داده ها در کلاس

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 1
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل در کار با داده ها در کلاس
    نویسنده پیام
    Heretic آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۸ مرداد ۲۴
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #1
    مشکل در کار با داده ها در کلاس
    سلام
    من یه کلاس ساده برای اخبار دارم

    کد PHP:
    require_once ("db.php");

    class 
    news {
        public 
    $id;
        public 
    $title;
        public 
    $text;
        
        
        public function 
    find_by_sql($sql "") {
            global 
    $db;
            
    $result_set $db->query $sql );
            
    $object_array = array ();
            while ( 
    $row $db->fetch_array $result_set ) ) {
                
    $object_array [] = self::instantiate $row ,$object);
            }
            return 
    $object_array;
        }
        

        
        private static function 
    instantiate($record ,$object) {
                    foreach ( 
    $record as $attribute => $value ) {
                if (
    $object->has_attribute $attribute )) {
                    
    $object->$attribute $value;
                }
            }
            return 
    $object;
        }
        
        private function 
    has_attribute($attribute) {
            
    $object_vars $this->attributes();
                return 
    array_key_exists $attribute$object_vars );
        }
        public function 
    attributes(){
        
        return 
    get_object_vars $this );
        } 

    هر وقت یه کد sql اجرا میشه و یه خبر جستجو میشه با استفاده از فانکشن instantiate
    مقادیر
    کد PHP:
        public $id;
        public 
    $title;
        public 
    $text
    در کلاس برابر با اون خبر جستجو شده مقدار دهی میشن
    مثلا
    اگه این قطعه رو اجرا کنم
    کد PHP:
    $news = new news();
    $news->find_by_sql("select *fro news where id=1"); 

    بعدش دیتا های کلاس برابر بافیلد های متناظر اون سطری که توی دیتابیس جستجو و استخراج شده مقدار دهی میشن و میشه بهشون دسترسی داشت
    کد PHP:
    echo $news->id;
    echo 
    $news->title;
    echo 
    $news->text

    حالا سوال من اینه که اگر جواب برگشتی از find_by_sql دو سطر بود چطور میشه
    به دیتا ها اینطوری دست پیدا کرد ؟جوری که سطر بعدی دیتا ها رو رونویسی نکنه و همیشه دیتا های مقدار داده شده برای سطر آخر برگردونده نشه
    ۱۳۸۸ دي ۲۹ ۰۹:۲۹ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #2
    RE: مشکل در کار با داده ها در کلاس
    شاید من بد متوجه شده باشم ولی روال کار اینطوری نیست!

    تو کلاس db.php خودت یه تابع تعریف کن تا مقادیر برگشتی از بانک رو تو آرایه ای از آرایه ها بریزه منظورم همون آرایه تودرتو هستش

    بعد تو آرایه رو به اونجایی که میخوای اخبار رو نشون بدی میفرستی و از حلقه foreach واسه نمایش استفاده میکنی!

    امیدوارم که خوب توضیخ داده باشمTongue
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    ۱۳۸۹ تير ۲۵ ۰۹:۳۵ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS