2014-07-16 38 views
-1

我已經有表中命名爲「產品」既節約了產品的所有詳細信息的數據庫... 我想顯示所有使用 類我做了編碼,但沒有得到期望的結果產品表中的行...希望能得到幫助儘快 這是一個包含數據庫類我想顯示在PHP中使用OOP數據庫中的所有行,並不能得到它的工作

<?php 
class Database { 

    var $host="localhost"; 
    var $username="cccsql";  
    Var $password="ccc123"; 
    var $database="trainees_pankaj"; 
    var $fr_query; 
    var $row= array() ; 


public function connect() 
{ 
    $conn= mysql_connect($this->host,$this->username,$this->password); 
    if(! $conn) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
} 

public function db() 
{ 
    $conn_db = mysql_select_db($this->database); 
    if(! $conn_db) 
    { 
     echo 'Could Not Connect the Database'; 
    } 
} 

public function insert($sql) 
{ 
$run = mysql_query($sql) ; 

} 

public function delete($del_sql) 
{ 
    $run = mysql_query($del_sql) ; 

} 

public function update($up_sql) 
{ 
    $run = mysql_query($up_sql) ; 

} 

public function fetchRow($fr) 
{ 
     $run = mysql_query($fr) ; 
     $row = mysql_fetch_array($run); 
     $ans = $row[0]." ". $row[1]; 
     return $ans; 
} 

function fetchAll($fr_query) 
{ 
     $run = mysql_query($fr_query); 

     $data = array() ; 
     while($row = mysql_fetch_array($run)){ 
     $data[] = $row ; 
     } 
     return $data; 
} 
} 

?> 

我database.php中,這是我的index.php頁面顯示所有行...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 

<title>Task 1</title> 
<link rel="stylesheet" type="text/css" href="css/mypo-list.css"> 
</head> 
<body> 
<div class="container"> 
    <h4 align="center">Product Detail</h4> 
    <br> 
    <a class="add_but" href="add_product.php"><button>Add More Product</button></a> 
<?php 
include ("database.php"); 

$n=new Database(); 
$n->connect(); 
$n->db(); 

$fr_query = "SELECT * FROM product"; 

$m= new Database(); 

$reach = array(); 
$m->fetchAll($fr_query); 
$reach = (array)$m; 

print_r('<table class="table_view"><tr><td class="tb_head">Product Id</td><td class="tb_head">Product Name</td><td class="tb_head">Product Description</td><td class="tb_head">sku</td><td class="tb_head">Price</td><td class="tb_head">Quantity</td><td class="tb_head">Status</td><td class="tb_head">Created At</td><td class="tb_head">Updated At</td><td class="tb_head">Option</td></tr>'); 
while ($reach) 
{ 
    echo '<tr>'; 

    $cr_date = date('M j Y g:i A', strtotime($reach['created_at'])); 
    $up_date = date('M j Y g:i A', strtotime($reach['updated_at'])); 
    $test_date = 'Nov 30 -0001 12:00 AM'; 
    if ($up_date == $test_date) 
    { 
     $set_up_date = 'NULL'; 
    } 
    else { 
     $set_up_date = $up_date; 
    } 
    $par_field = $reach['product_id']; 
    $opt = '<td><a class="opt_but" href="edit.php?id='.$par_field.'">Edit</a>&nbsp&nbsp&nbsp&nbsp<a class="opt_but" href="delete.php?id='.$par_field.'">Delete</a></td>'; 
    echo '<td>'.$reach['product_id'].'</td>'.'<td>'.$reach['name'].'</td>'.'<td>'.$reach['description'].'</td>'.'<td>'.$reach['sku'].'</td>'.'<td>'.$reach['price'].'</td>'.'<td>'.$reach['quantity'].'</td>'.'<td>'.$reach['status'].'</td>'.'<td>'.$cr_date.'</td>'.'<td>'.$set_up_date.'</td>'.$opt; 
     print_r('</tr>'); 
} 
?> 

</div> 
</body> 
</html> 
+1

停止使用廢棄的'mysql_ *'功能;改用PDO/MySQLi;同樣,你的'插入()','更新()','刪除()'函數是多餘的和毫無意義的。 – Raptor

+0

如何使用PDO/MySQLi? –

+1

對Google太懶了嗎? – Raptor

回答

0

這很容易的人:

$fr_query = "SELECT * FROM product"; 

$m= new Database(); 

$reach = array(); // anyway you don't need to assign value twice 
$reach = $m->fetchAll($fr_query); 
//$reach = (array)$m; this is mistake 

你也最好使用foreach

foreach ($reach as $reachRow) 
{ 
    // code here 
} 

最後你的代碼看起來像這樣:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 

<title>Task 1</title> 
<link rel="stylesheet" type="text/css" href="css/mypo-list.css"> 
</head> 
<body> 
<div class="container"> 
    <h4 align="center">Product Detail</h4> 
    <br> 
    <a class="add_but" href="add_product.php"><button>Add More Product</button></a> 
<?php 
include ("database.php"); 

$n=new Database(); 
$n->connect(); 
$n->db(); 

$fr_query = "SELECT * FROM product"; 

$m= new Database(); 

$reaches = $m->fetchAll($fr_query); 

print_r('<table class="table_view"><tr><td class="tb_head">Product Id</td><td class="tb_head">Product Name</td><td class="tb_head">Product Description</td><td class="tb_head">sku</td><td class="tb_head">Price</td><td class="tb_head">Quantity</td><td class="tb_head">Status</td><td class="tb_head">Created At</td><td class="tb_head">Updated At</td><td class="tb_head">Option</td></tr>'); 
foreach ($reaches as $reach) 
{ 
    echo '<tr>'; 

    $cr_date = date('M j Y g:i A', strtotime($reach['created_at'])); 
    $up_date = date('M j Y g:i A', strtotime($reach['updated_at'])); 
    $test_date = 'Nov 30 -0001 12:00 AM'; 
    if ($up_date == $test_date) 
    { 
     $set_up_date = 'NULL'; 
    } 
    else { 
     $set_up_date = $up_date; 
    } 
    $par_field = $reach['product_id']; 
    $opt = '<td><a class="opt_but" href="edit.php?id='.$par_field.'">Edit</a>&nbsp&nbsp&nbsp&nbsp<a class="opt_but" href="delete.php?id='.$par_field.'">Delete</a></td>'; 
    echo '<td>'.$reach['product_id'].'</td>'.'<td>'.$reach['name'].'</td>'.'<td>'.$reach['description'].'</td>'.'<td>'.$reach['sku'].'</td>'.'<td>'.$reach['price'].'</td>'.'<td>'.$reach['quantity'].'</td>'.'<td>'.$reach['status'].'</td>'.'<td>'.$cr_date.'</td>'.'<td>'.$set_up_date.'</td>'.$opt; 
     print_r('</tr>'); 
} 
?> 

</div> 
</body> 
</html> 
+0

感謝朋友.... –

+0

歡迎隨時:)) –

相關問題