На этом сайте я нашел много интересных примеров PHP OOP. Может быть, вы знаете, где найти полные примеры? Гостевая книга, регистрационные формы, блог …
Когда я смотрю на полную модель, гораздо проще понять OOP PHP. Поскольку разные классы взаимодействуют друг с другом, обмениваются данными. Как использовать общий класс для отправки данных в базу данных
благодаря
Ниже приведен пример кода:
class.php
class Database{ /* * Create variables for credentials to MySQL database * The variables have been declared as private. This * means that they will only be available with the * Database class */ private $db_host = "localhost"; // Change as required private $db_user = "root"; // Change as required private $db_pass = ""; // Change as required private $db_name = ""; // Change as required /* * Extra variables that are required by other function such as boolean con variable */ private $con = false; // Check to see if the connection is active private $result = array(); // Any results from a query will be stored here // Function to make connection to database public function connect(){ if(!$this->con){ $myconn = @mysql_connect($this->db_host,$this->db_user,$this->db_pass); // mysql_connect() with variables defined at the start of Database class if($myconn){ $seldb = @mysql_select_db($this->db_name,$myconn); // Credentials have been pass through mysql_connect() now select the database if($seldb){ $this->con = true; return true; // Connection has been made return TRUE }else{ array_push($this->result,mysql_error()); return false; // Problem selecting database return FALSE } }else{ array_push($this->result,mysql_error()); return false; // Problem connecting return FALSE } }else{ return true; // Connection has already been made return TRUE } } // Function to disconnect from the database public function disconnect(){ // If there is a connection to the database if($this->con){ // We have found a connection, try to close it if(@mysql_close()){ // We have successfully closed the connection, set the connection variable to false $this->con = false; // Return true tjat we have closed the connection return true; }else{ // We could not close the connection, return false return false; } } } public function select($sql){ $query = @mysql_query($sql); // $this->myQuery = $sql; // Pass back the SQL if($query){ // If the query returns >= 1 assign the number of rows to numResults $this->numResults = mysql_num_rows($query); // Loop through the query results by the number of rows returned for($i = 0; $i < $this->numResults; $i++){ $r = mysql_fetch_array($query); $key = array_keys($r); for($x = 0; $x < count($key); $x++){ // Sanitizes keys so only alphavalues are allowed if(!is_int($key[$x])){ if(mysql_num_rows($query) >= 1){ $this->result[$i][$key[$x]] = $r[$key[$x]]; }else{ $this->result = null; } } } } return true; // Query was successful }else{ array_push($this->result,mysql_error()); return false; // No rows where returned } } // Function to insert into the database public function insert($sql) { // Make the query to insert to the database if($ins = @mysql_query($sql)) { array_push($this->result,mysql_insert_id()); return true; // The data has been inserted } else { array_push($this->result,mysql_error()); return false; // The data has not been inserted } } // Function to update and delete into the database public function query($sql) { if($query = @mysql_query($sql)){ array_push($this->result,mysql_affected_rows()); return true; }else{ array_push($this->result,mysql_error()); return false; } } // Public function to return the data to the user public function getResult(){ $val = $this->result; $this->result = array(); return $val; } } ?>
index.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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Example Test</title> </head> <body> <?php if(isset($_REQUEST['failure'])) { echo "Email/Password Wrong"; } ?> <form action="operation.php" method="post"> <label>Email:</label> <input type="text" name="email" /> <br /> <label>Password:</label> <input type="password" name="password" /> <br /> <input type="submit" name="cmdlogin" value="Login" /> </form> </body> </html>
operation.php
<?php require_once("class.php"); $db = new Database(); $db->connect(); if(isset($_REQUEST['cmdlogin'])) { $rs = $db->select("SELECT * FROM tbl_login where email = '".$_REQUEST['email']."' and password= '".md5($_REQUEST['password'])."'"); $res = $db->getResult(); if($res) { header('location: http://localhost/project/menu.php '); } else { header('location: http://localhost/project/index.php?failure'); } } if(isset($_REQUEST['cmdproduct_save'])) { $rs = $db->insert("INSERT INTO `tbl_product`(`product`, `description`, `catid`) VALUES ('".$_REQUEST['product']."','".$_REQUEST['description']."', '".$_REQUEST['drpcat']."')"); $res = $db->getResult(); header('location: http://localhost/project/product.php?saved'); } if(isset($_REQUEST['cmdcategory_save'])) { $filename = ''; if(isset($_FILES['catimage']['name']) && $_FILES['catimage']['name'] != '') { $filename = time(); $ext=substr($_FILES['catimage']['name'],strrpos($_FILES['catimage']['name'],'.'),strlen($_FILES['catimage']['name'])-1); $filepath = $_SERVER['DOCUMENT_ROOT'].'project/image/'.$filename.$ext; move_uploaded_file($_FILES['catimage']['tmp_name'],$filepath); } $rs = $db->insert("INSERT INTO `tbl_category`(`category`, `description`,`catimage`) VALUES ('".$_REQUEST['category']."','".$_REQUEST['description']."','".$filename."')"); $res = $db->getResult(); header('location: http://localhost/project/category.php?saved'); } if(isset($_REQUEST['cmdproduct_update'])) { $rs = $db->query("UPDATE `tbl_product` SET `product` = '".$_REQUEST['product']."', `description`= '".$_REQUEST['description']."',`catid` = '".$_REQUEST['drpcat']."' where id = ".$_REQUEST['proeditid']); $res = $db->getResult(); header('location: http://localhost/project/product.php?updated'); } if(isset($_REQUEST['cmdcategory_update'])) { //print_r($_REQUEST);exit; $rs = $db->query("UPDATE `tbl_category` SET `category`= '".$_REQUEST['category']."', `description` = '".$_REQUEST['description']."' where id =".$_REQUEST['cateditid']); $res = $db->getResult(); //print_r($res);exit; header('location: http://localhost/project/category.php?updated'); } if(isset($_REQUEST['catdelete'])) { $rs = $db->query("DELETE FROM `tbl_category` WHERE id = ".$_REQUEST['catdelete']); $res = $db->getResult(); header('location: http://localhost/project/category.php?deleted'); } ?>
product.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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Example Test</title> </head> <body> <?php include("menu.php"); require_once("class.php"); $db = new Database(); $db->connect(); $db->select("select * from tbl_category"); $rs = $db->getResult(); if(isset($_REQUEST['proeditid'])) { $db->select("select * from tbl_product where id = ".$_REQUEST['proeditid']); $result = $db->getResult(); //print_r($result); } ?> <form action="operation.php" method="post"> <label>Product:</label> <input type="text" name="product" value="<?php if(isset($result)){ echo $result[0]['product']; }?>" /> <br /> <label>Description:</label> <input type="text" name="description" value="<?php if(isset($result)){ echo $result[0]['description']; }?>" /> <br /> <label>Category:</label> <select name="drpcat"> <option value="0">Select Category</option> <?php foreach($rs as $val){?> <option value="<?php echo $val['id']; ?>"<?php if(isset($result) && $result[0]['catid'] == $val['id']){ echo 'selected="selected"';}?>><?php echo $val['category'];?></option> <?php }?> </select> <br /> <?php if(isset($result)) {?> <input type="hidden" name="proeditid" value="<?php echo $result[0]['id'];?>" /> <input type="submit" name="cmdproduct_update" value="Update" /> <?php }else {?> <input type="submit" name="cmdproduct_save" value="Save" /> <?php }?> </form> <br /> <br /> <br /> <br /> <?php $db->select("select p.*,c.category from tbl_product as p, tbl_category as c where c.id = p. catid"); $res = $db->getResult(); ?> <table border="1"> <thead> <tr> <th>Product</th> <th>Description</th> <th>Category</th> <th>Edit</th> <th>Delete</th> </tr> </thead> <tbody> <?php foreach($res as $output){ ?> <tr> <td><?php echo $output['product']; ?></td> <td><?php echo $output['description']; ?></td> <td><?php echo $output['category']; ?></td> <td> <form action="operation.php" method="post" name="catedit<?php echo $output['id']; ?>"> <input type="hidden" name="proedit" value="<?php echo $output['id']; ?>" /> </form> <a href="http://localhost/project/product.php?proeditid=<?php echo $output['id']; ?>">Edit</a> </td> <td> <form action="operation.php" method="post" name="prodelete<?php echo $output['id']; ?>"> <input type="hidden" name="prodelete" value="<?php echo $output['id']; ?>" /> </form> <a href="#" onclick="document.prodelete<?php echo $output['id']; ?>.submit();">Delete</a> </td> </tr> <?php } ?> </tbody> </table> </body> </html> <div style="margin-bottom:30px;"> <a href="category.php">Category</a> <a href="product.php" style="margin-left:15px;">Product</a> </div>
в<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Example Test</title> </head> <body> <?php include("menu.php"); require_once("class.php"); $db = new Database(); $db->connect(); $db->select("select * from tbl_category"); $rs = $db->getResult(); if(isset($_REQUEST['proeditid'])) { $db->select("select * from tbl_product where id = ".$_REQUEST['proeditid']); $result = $db->getResult(); //print_r($result); } ?> <form action="operation.php" method="post"> <label>Product:</label> <input type="text" name="product" value="<?php if(isset($result)){ echo $result[0]['product']; }?>" /> <br /> <label>Description:</label> <input type="text" name="description" value="<?php if(isset($result)){ echo $result[0]['description']; }?>" /> <br /> <label>Category:</label> <select name="drpcat"> <option value="0">Select Category</option> <?php foreach($rs as $val){?> <option value="<?php echo $val['id']; ?>"<?php if(isset($result) && $result[0]['catid'] == $val['id']){ echo 'selected="selected"';}?>><?php echo $val['category'];?></option> <?php }?> </select> <br /> <?php if(isset($result)) {?> <input type="hidden" name="proeditid" value="<?php echo $result[0]['id'];?>" /> <input type="submit" name="cmdproduct_update" value="Update" /> <?php }else {?> <input type="submit" name="cmdproduct_save" value="Save" /> <?php }?> </form> <br /> <br /> <br /> <br /> <?php $db->select("select p.*,c.category from tbl_product as p, tbl_category as c where c.id = p. catid"); $res = $db->getResult(); ?> <table border="1"> <thead> <tr> <th>Product</th> <th>Description</th> <th>Category</th> <th>Edit</th> <th>Delete</th> </tr> </thead> <tbody> <?php foreach($res as $output){ ?> <tr> <td><?php echo $output['product']; ?></td> <td><?php echo $output['description']; ?></td> <td><?php echo $output['category']; ?></td> <td> <form action="operation.php" method="post" name="catedit<?php echo $output['id']; ?>"> <input type="hidden" name="proedit" value="<?php echo $output['id']; ?>" /> </form> <a href="http://localhost/project/product.php?proeditid=<?php echo $output['id']; ?>">Edit</a> </td> <td> <form action="operation.php" method="post" name="prodelete<?php echo $output['id']; ?>"> <input type="hidden" name="prodelete" value="<?php echo $output['id']; ?>" /> </form> <a href="#" onclick="document.prodelete<?php echo $output['id']; ?>.submit();">Delete</a> </td> </tr> <?php } ?> </tbody> </table> </body> </html> <div style="margin-bottom:30px;"> <a href="category.php">Category</a> <a href="product.php" style="margin-left:15px;">Product</a> </div>
menu.php
<div style="margin-bottom:30px;"> <a href="category.php">Category</a> <a href="product.php" style="margin-left:15px;">Product</a> </div>
category.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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Example Test</title> </head> <body> <?php require_once("class.php"); include("menu.php"); $db = new Database(); $db->connect(); if(isset($_REQUEST['cateditid'])) { $db->select("select * from tbl_category where id = ".$_REQUEST['cateditid']); $rs = $db->getResult(); //print_r($rs); } ?> <form action="operation.php" method="post" enctype="multipart/form-data"> <label>Category:</label> <input type="text" name="category" value="<?php if(isset($rs)){ echo $rs[0]['category']; }?>" /> <br /> <label>Description:</label> <input type="text" name="description" value="<?php if(isset($rs)){ echo $rs[0]['description']; }?>" /> <br /> <label>Category Image:</label> <input type="file" name="catimage" /> <br /> <?php if(isset($rs)) {?> <input type="hidden" name="cateditid" value="<?php echo $rs[0]['id'];?>" /> <input type="submit" name="cmdcategory_update" value="Update" /> <?php }else {?> <input type="submit" name="cmdcategory_save" value="Save" /> <?php }?> </form> <br /> <br /> <br /> <br /> <?php $db->select("select * from tbl_category"); $res = $db->getResult(); ?> <table border="1"> <thead> <tr> <th>Category</th> <th>Description</th> <th>Edit</th> <th>Delete</th> </tr> </thead> <tbody> <?php foreach($res as $output){ ?> <tr> <td><?php echo $output['category']; ?></td> <td><?php echo $output['description']; ?></td> <td> <form action="operation.php" method="post" name="catedit<?php echo $output['id']; ?>"> <input type="hidden" name="catedit" value="<?php echo $output['id']; ?>" /> </form> <a href="http://localhost/project/category.php?cateditid=<?php echo $output['id']; ?>">Edit</a> </td> <td> <form action="operation.php" method="post" name="catdelete<?php echo $output['id']; ?>"> <input type="hidden" name="catdelete" value="<?php echo $output['id']; ?>" /> </form> <a href="#" onclick="document.catdelete<?php echo $output['id']; ?>.submit();">Delete</a> </td> </tr> <?php } ?> </tbody> </table> </body> </html>
в<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Example Test</title> </head> <body> <?php require_once("class.php"); include("menu.php"); $db = new Database(); $db->connect(); if(isset($_REQUEST['cateditid'])) { $db->select("select * from tbl_category where id = ".$_REQUEST['cateditid']); $rs = $db->getResult(); //print_r($rs); } ?> <form action="operation.php" method="post" enctype="multipart/form-data"> <label>Category:</label> <input type="text" name="category" value="<?php if(isset($rs)){ echo $rs[0]['category']; }?>" /> <br /> <label>Description:</label> <input type="text" name="description" value="<?php if(isset($rs)){ echo $rs[0]['description']; }?>" /> <br /> <label>Category Image:</label> <input type="file" name="catimage" /> <br /> <?php if(isset($rs)) {?> <input type="hidden" name="cateditid" value="<?php echo $rs[0]['id'];?>" /> <input type="submit" name="cmdcategory_update" value="Update" /> <?php }else {?> <input type="submit" name="cmdcategory_save" value="Save" /> <?php }?> </form> <br /> <br /> <br /> <br /> <?php $db->select("select * from tbl_category"); $res = $db->getResult(); ?> <table border="1"> <thead> <tr> <th>Category</th> <th>Description</th> <th>Edit</th> <th>Delete</th> </tr> </thead> <tbody> <?php foreach($res as $output){ ?> <tr> <td><?php echo $output['category']; ?></td> <td><?php echo $output['description']; ?></td> <td> <form action="operation.php" method="post" name="catedit<?php echo $output['id']; ?>"> <input type="hidden" name="catedit" value="<?php echo $output['id']; ?>" /> </form> <a href="http://localhost/project/category.php?cateditid=<?php echo $output['id']; ?>">Edit</a> </td> <td> <form action="operation.php" method="post" name="catdelete<?php echo $output['id']; ?>"> <input type="hidden" name="catdelete" value="<?php echo $output['id']; ?>" /> </form> <a href="#" onclick="document.catdelete<?php echo $output['id']; ?>.submit();">Delete</a> </td> </tr> <?php } ?> </tbody> </table> </body> </html>
Эта статья очень помогла мне понять основы ООП
Объектно-ориентированное программирование в PHP
Надеюсь, это поможет вам
PHP объектно-ориентированные решения http://www.amazon.com/dp/1430210117
Мне очень понравилась эта книга, когда я собирался кататься с php