05-07-2009, 19:37
|
|
|
חבר מתאריך: 21.01.06
הודעות: 813
|
|
אחלה תודה על העזרה.
רק בקשר לתשובה 2-
ציטוט:
ואת השיטות
אתה תגדיר כציבוריות (public), למעט שיטות עזר.
|
גם שיטות צריך להגדיר אחרת? כלומר את הפונקציות,צריכה לבוא המילה public או הגדרת
אבטחה אחרת לפני המילה function בתוך המחלקה?(וגם בלי מחלקה?)
סיימתי לבנות את המחלקה הראשונה כרגע אל תתיחס לעניין של הPHP4,זה נראה ככה,דף function.php:
קוד PHP:
<?php function con_db() { $connection = mysql_connect ('localhost' , '' , '') or die ("EROR: Couln't connect to mysql server"); mysql_select_db ('test') or die ("EROR: Couldn't open datebase"); }
class Table { var $table_array = array(); var $headers = array(); var $cols; function Table($headers) { $this->headers = $headers; $this->cols = count($headers); } function addRow($row) { if ($this->cols != count($row)) return false; array_push ($this->table_array,$row); return true; }
}
class HTMLTable extends Table { var $bgcolor; var $cellpadding = "2"; var $css_style; function HTMLTable ($headers,$bg="#ffffff",$padding="4",$style) { Table::Table($headers); $this->bgcolor = $bg; $this->cellpadding = $padding; $this->css_style = $style; } function output() { echo '<Table cellpadding='.$this->cellpadding.' style="'.$this->css_style.'"><tr>'; foreach ($this->headers as $header) echo '<td style="'.$this->css_style.'" bgcolor='.$this->bgcolor.'><b>'.$header.'</b></td>'; echo '</tr>'; foreach ($this->table_array as $row=>$cells) { echo '<tr>'; foreach ($cells as $cell) echo '<td style="'.$this->css_style.'" bgcolor='.$this->bgcolor.'>'. $cell .'</td>'; echo '</tr>'; } echo '</table>'; } }
?>
והדף index.php המשתמש בה:
קוד PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>User List</title> <meta http-equiv="content-language" content="he" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head> <body> <?php require ("functions.php"); con_db();
$headers = array ("nick","password","name","age","phone"); $cellpadding = "7"; $bgcolor="#D0DCE0"; $css_style = "border: 1px solid black; font-size: 10pt; text-align: center;"; $table = new HTMLTable ( $headers ,$bgcolor,$cellpadding,$css_style); $q = mysql_query ("SELECT * FROM user_list ORDER by `ID` DESC"); while ($det = mysql_fetch_array ($q)) $table->addRow ( array ($det['nick'],$det['password'],$det['name'],$det['age'],$det['phone']) ); $table->output(); ?> </body> </html>
----------------------------------------------------------------------
עשיתי בעצם דבר כזה: לקחתי את השמות של השדות מהטבלת נתונים,והשתמשתי במחלקה
כדי להדפיס את זה טבלה.
----------------------------------------------------------------------
השאלות שלי הן כאלה:
1. עד כמה ייעלתי את הדברים,כלומר עשיתי כמו שצריך לעשות או שיש איזה משהו שכנראה
לא הפנמתי כמו שצריך?
2. האם ככה משתמשים במונחה עצמים,כלומר יוצרים מחלקות ואת המאפיינים שלהם משנים
בכל דף בנפרד(כמו שאני למשל שיניתי מאפיניים באינקס)?
3. כדי לתפוס כמו שצריך את העניין של המונחה עצמים,אפשר בבקשה קומץ דברים שאיתם משתמשים במחלקות ובמונחה עצמים? למשל תכננתי לעשות את העניין עם הטבלה
כדי שפאנל ניהול אני אוכל להדפיס כמה פעמים את הטבלאות נתונים,עם מחלקת אם ומחלקת "צאצא"
וכך לחסוך בקוד.
ושוב תודה רבה !
_____________________________________
--- ! Area Close ! ---
|