ارسال پاسخ 
 
رتبه موضوع
  • 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 آفلاین
عضو
***

ارسال‌ها: 104
ثبت نام: ۱۳۸۸ بهمن ۴
اعتبار: 0

تشکرها : 32
( 10 تشکر در 7 ارسال )
شماره : #2
RE: مشکل در کار با داده ها در کلاس
شاید من بد متوجه شده باشم ولی روال کار اینطوری نیست!

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

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

امیدوارم که خوب توضیخ داده باشمTongue

******** خدایا خوارم کن ولی مردم آزارم نکن ********
۱۳۸۹ تير ۲۵ ۰۹:۳۵ صبح
یافتن تمام ارسال‌های این کاربر نقل این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:

تماس با ماiranphp.orgبازگشت به بالابازگشت به مطلبآرشیو انجمنپیوند RSS