2011-11-27 19 views
1

好吧,我正在學習php並嘗試使用類和函數。目前我有多個頁面,它有相同的菜單欄和用戶信息,所以我決定創建一個Common類和一個功能菜單來加載用戶信息和回顯信息以及菜單內容。由於某種原因,它不顯示任何幫助?使用php類和函數來回顯常見的html

class Content { 
    public function menu($userid) { 
     require_once("../class/class1.php"); 
     echo '<div id="logo"></div> 
      <div style="clear:both;"></div>'; 
     echo '<div id="user">Welcome '; 

     $db = new MySQL(); 
     $user = new User(); 
     $sql = $db->sql($user->loadUser($userid)); 

     if ($db->num_rows($sql) > 0) { 
      while ($row = $db->fetch_array($sql)) { 
       echo $row['name'] . ' ' . $row['lastname']; 
      } 
     } 
    } 
} 

HTML:

require_once("content.php"); 
$content = new Content(); 
echo $content->menu($userid); 

在本地主機上運行時,我得到了以下錯誤:

Fatal error: Cannot redeclare class Sql in C:\xampp\htdocs\orbecargo\class\sql.php on line 3 

該文件是:

class MySQL 
{ 
private $conexion; 
private $total_consultas; 

public function MySQL(){ 
    if(!isset($this->conexion)){ 
     $this->conexion = (mysql_connect("server","username","password")) or die(mysql_error()); 
     mysql_select_db("database",$this->conexion) or die(mysql_error()); 
     mysql_set_charset('utf8',$this->conexion); 
    } 
} 
} 

奇怪的是,其他網頁工作完美... 和我刪除了

echo $content->menu($userid); 

,仍然沒有

+0

什麼是錯誤信息? –

+0

使用函數error_reporting(E_ALL)激活錯誤並觀察是否報告了一些錯誤。順便說一句,你已經寫了echo $ content-> menu($ userid)這是錯誤的,因爲你沒有返回任何東西(返回關鍵字)。你正在回聲(在頁面中打印)字符串。所以在這種情況下,你只能做$ content-> menu($ userid)。 –

+0

我剛剛添加了錯誤消息,並刪除了回聲,但在本地主機我得到的錯誤不在線:S – Andres

回答

1
echo $content->menu($userid); 

菜單()不返回任何

菜單之前刪除回聲();到

require_once("content.php"); 
$content = new Content(); 
$content->menu($userid); 
+0

做到了這一點,但仍然沒有試圖調用該文件是在另一個文件夾可以這樣嗎? 我有: folder1/htmlfile.php folder2/content.php – Andres

+0

您需要確保路徑正確。如果有疑問使用絕對路徑。這可能是,include_once()實際上並不包括文件。切換到require_once(),如果找不到該文件,它將會生成一個錯誤。 – Bill

+0

實際上它不僅是,而且還在我的班級裏面我在「class Mysql」之前包含了一個文件聲明 – Andres