2016-06-04 2 views
0

я делал практику PHP PDO CRUD примера codingcage ... ссылка http://www.codingcage.com/2015/04/php-pdo-crud-tutorial-using-oop-with.html - в index.php я создал поле выбора с динамическим значением:PHP PDO CRUD отображение данных на основе выбора значения коробки

$conn = new mysqli('localhost', 'root', '', 'kk') or die ('Cannot connect to db'); 

$result = $conn->query("SELECT DISTINCT project FROM tbl_activitymaster where ProjectFlag='open' "); 

echo "<html>"; 
echo "<body>"; 
echo "<select name='unqprj'>"; 

while ($row = $result->fetch_assoc()) { 

       unset($project, $project); 
       $project = $row['project']; 
       $name = $row['project']; 
       echo '<option value="'.$project.'">'.$project.'</option>'; 
       $value="<?php echo $project;?>"; 
      } 

echo "</select>"; 
echo "</body>"; 
echo "</html>"; 

Но проблема заключается в том, как использовать это поле выбора в примере crud для фильтрации записей на основе выбранного значения. Я сделал это в asp.net, но в php, как это сделать. любая помощь, пожалуйста, или любую ссылку

+0

Создайте форму, используйте массив '$ _POST'. –

+0

благодарит mulder за ваш быстрый ответ. Я не понимаю, как реализовать его с помощью этого примера crud -pdo. любая помощь –

ответ

0
index.php............... 
<?php include_once '../header.php'; ?> 
<?php include_once 'dbconfig.php'; ?> 
<?php 
$conn = new mysqli('localhost', 'root', '', 'kk') 
or die ('Cannot connect to db'); 
$result = $conn->query("SELECT DISTINCT project FROM tbl_activitymaster where ProjectFlag='open' "); 
echo "<html>"; 
echo "<body>"; 
echo "<select name='unqprj'>"; 
while ($row = $result->fetch_assoc()) { 
unset($project, $project); 
$project = $row['project']; 
$name = $row['project']; 
echo '<option value="'.$project.'">'.$project.'</option>'; 
$value="<?php echo $project;?>"; 
echo "</select>"; 
echo "</body>"; 
echo "</html>"; 
?> 
<div class="container"> 
<table class='table table-bordered table-hover table-responsive'> 
<thead style="background-color:#FFFBF0"> 
<tr> 
<th>ID</th> 
<th>Project</th> 
<th>ProjectUser</th> 
<th>Month</th> 
<th>Status</th> 
</tr> 
</thead> 
<?php 
$query = "SELECT * FROM tbl_activitymaster where ProjectUser='" . ($_SESSION['sess_username']) . "' ";  
$records_per_page=10; 
$newquery = $crud->paging($query,$records_per_page); 
$crud->dataview($newquery); 
?> 
<tr> 
<td colspan="7" align="center"> 
<div class="pagination-wrap"> 
<?php $crud->paginglink($query,$records_per_page); ?> 
</div> 
</td> 
</tr> 
</table> 
</div> 
<?php include_once '../footer.php'; ?> 
0
class.crud.php.............. 
//show 
public function dataview($query) 
{ 
$stmt = $this->db->prepare($query); 
$stmt->execute(); 
if($stmt->rowCount()>0) 
{ 
while($row=$stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
?> 
<td><?php print($row['id']); ?></td>   
<td><?php print($row['Project']);?></td> 
<td><?php print($row['ProjectUser']);?></td>     
<td><?php print($row['Month']);?></td> 
<td><?php print($row['Status']);?></td> 
</tr> 
<?php 
} 
} 
else 
{ 
?> 
<tr> 
<td>Nothing here...</td> 
</tr> 
<?php 
} 
} 

// пейджинговой
общественная функция пейджинга ($ запроса $ records_per_page) { $ starting_position = 0; if (isset ($ _ GET ["page_no"])) { $ start_position = ($ _ GET ["page_no"] - 1) * $ records_per_page; } $ query2 = $ query. "Limit $ start_position, $ records_per_page"; return $ query2; }

0
// as mulder is suggesting but no idea how to implement with this eaample 
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form2' > 
<select name="value"> 
<option value="all">All</option> 
<option value="Project1">Project1</option> 
<option value="Project2">Project2</option> 
</select> 
<input type='submit' value = 'Show'> 
</form> 
0

Здесь код codeingcage, во-первых, и вам нужно просто придать поле выбора там, как:

index.php

<?php 
include_once 'dbconfig.php'; 
?> 
<?php include_once 'header.php'; ?> 

<div class="clearfix"></div> 

<div class="container"> 
<a href="add-data.php" class="btn btn-large btn-info"><i class="glyphicon glyphicon-plus"></i> &nbsp; Add Records</a> 
</div> 

<div class="clearfix"></div><br /> 

<div class="container"> 
    <table class='table table-bordered table-responsive'> 
    <tr> 
    <th>#</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>E - mail ID</th> 
    <th>Contact No</th> 
    <th colspan="2" align="center">Actions</th> 
    </tr> 
    <?php 
     $query = "SELECT * FROM tbl_users";  
     $records_per_page=3; 
     $newquery = $crud->paging($query,$records_per_page); 
     $crud->dataview($newquery); 
    ?> 
    <tr> 
     <td colspan="7" align="center"> 
      <div class="pagination-wrap"> 
      <?php $crud->paginglink($query,$records_per_page); ?> 
      </div> 
     </td> 
    </tr> 

</table> 


</div> 

<?php include_once 'footer.php'; ?> 

dbconfig.php

<?php 

$DB_host = "localhost"; 
$DB_user = "root"; 
$DB_pass = ""; 
$DB_name = "dbpdo"; 


try 
{ 
    $DB_con = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass); 
    $DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
} 

include_once 'class.crud.php'; 

$crud = new crud($DB_con); 

?> 

class.crud.php

<?php 

class crud 
{ 
    private $db; 

    function __construct($DB_con) 
    { 
     $this->db = $DB_con; 
    } 

    public function create($fname,$lname,$email,$contact) 
    { 
     try 
     { 
      $stmt = $this->db->prepare("INSERT INTO tbl_users(first_name,last_name,email_id,contact_no) VALUES(:fname, :lname, :email, :contact)"); 
      $stmt->bindparam(":fname",$fname); 
      $stmt->bindparam(":lname",$lname); 
      $stmt->bindparam(":email",$email); 
      $stmt->bindparam(":contact",$contact); 
      $stmt->execute(); 
      return true; 
     } 
     catch(PDOException $e) 
     { 
      echo $e->getMessage(); 
      return false; 
     } 

    } 

    public function getID($id) 
    { 
     $stmt = $this->db->prepare("SELECT * FROM tbl_users WHERE id=:id"); 
     $stmt->execute(array(":id"=>$id)); 
     $editRow=$stmt->fetch(PDO::FETCH_ASSOC); 
     return $editRow; 
    } 

    public function update($id,$fname,$lname,$email,$contact) 
    { 
     try 
     { 
      $stmt=$this->db->prepare("UPDATE tbl_users SET first_name=:fname, 
                 last_name=:lname, 
                 email_id=:email, 
                 contact_no=:contact 
                WHERE id=:id "); 
      $stmt->bindparam(":fname",$fname); 
      $stmt->bindparam(":lname",$lname); 
      $stmt->bindparam(":email",$email); 
      $stmt->bindparam(":contact",$contact); 
      $stmt->bindparam(":id",$id); 
      $stmt->execute(); 

      return true;  
     } 
     catch(PDOException $e) 
     { 
      echo $e->getMessage(); 
      return false; 
     } 
    } 

    public function delete($id) 
    { 
     $stmt = $this->db->prepare("DELETE FROM tbl_users WHERE id=:id"); 
     $stmt->bindparam(":id",$id); 
     $stmt->execute(); 
     return true; 
    } 

    /* paging */ 

    public function dataview($query) 
    { 
     $stmt = $this->db->prepare($query); 
     $stmt->execute(); 

     if($stmt->rowCount()>0) 
     { 
      while($row=$stmt->fetch(PDO::FETCH_ASSOC)) 
      { 
       ?> 
       <tr> 
       <td><?php print($row['id']); ?></td> 
       <td><?php print($row['first_name']); ?></td> 
       <td><?php print($row['last_name']); ?></td> 
       <td><?php print($row['email_id']); ?></td> 
       <td><?php print($row['contact_no']); ?></td> 
       <td align="center"> 
       <a href="edit-data.php?edit_id=<?php print($row['id']); ?>"><i class="glyphicon glyphicon-edit"></i></a> 
       </td> 
       <td align="center"> 
       <a href="delete.php?delete_id=<?php print($row['id']); ?>"><i class="glyphicon glyphicon-remove-circle"></i></a> 
       </td> 
       </tr> 
       <?php 
      } 
     } 
     else 
     { 
      ?> 
      <tr> 
      <td>Nothing here...</td> 
      </tr> 
      <?php 
     } 

    } 

    public function paging($query,$records_per_page) 
    { 
     $starting_position=0; 
     if(isset($_GET["page_no"])) 
     { 
      $starting_position=($_GET["page_no"]-1)*$records_per_page; 
     } 
     $query2=$query." limit $starting_position,$records_per_page"; 
     return $query2; 
    } 

    public function paginglink($query,$records_per_page) 
    { 

     $self = $_SERVER['PHP_SELF']; 

     $stmt = $this->db->prepare($query); 
     $stmt->execute(); 

     $total_no_of_records = $stmt->rowCount(); 

     if($total_no_of_records > 0) 
     { 
      ?><ul class="pagination"><?php 
      $total_no_of_pages=ceil($total_no_of_records/$records_per_page); 
      $current_page=1; 
      if(isset($_GET["page_no"])) 
      { 
       $current_page=$_GET["page_no"]; 
      } 
      if($current_page!=1) 
      { 
       $previous =$current_page-1; 
       echo "<li><a href='".$self."?page_no=1'>First</a></li>"; 
       echo "<li><a href='".$self."?page_no=".$previous."'>Previous</a></li>"; 
      } 
      for($i=1;$i<=$total_no_of_pages;$i++) 
      { 
       if($i==$current_page) 
       { 
        echo "<li><a href='".$self."?page_no=".$i."' style='color:red;'>".$i."</a></li>"; 
       } 
       else 
       { 
        echo "<li><a href='".$self."?page_no=".$i."'>".$i."</a></li>"; 
       } 
      } 
      if($current_page!=$total_no_of_pages) 
      { 
       $next=$current_page+1; 
       echo "<li><a href='".$self."?page_no=".$next."'>Next</a></li>"; 
       echo "<li><a href='".$self."?page_no=".$total_no_of_pages."'>Last</a></li>"; 
      } 
      ?></ul><?php 
     } 
    } 

    /* paging */ 

} 

надстройку data.php

<?php 
include_once 'dbconfig.php'; 
if(isset($_POST['btn-save'])) 
{ 
    $fname = $_POST['first_name']; 
    $lname = $_POST['last_name']; 
    $email = $_POST['email_id']; 
    $contact = $_POST['contact_no']; 

    if($crud->create($fname,$lname,$email,$contact)) 
    { 
     header("Location: add-data.php?inserted"); 
    } 
    else 
    { 
     header("Location: add-data.php?failure"); 
    } 
} 
?> 
<?php include_once 'header.php'; ?> 
<div class="clearfix"></div> 

<?php 
if(isset($_GET['inserted'])) 
{ 
    ?> 
    <div class="container"> 
    <div class="alert alert-info"> 
    <strong>WOW!</strong> Record was inserted successfully <a href="index.php">HOME</a>! 
    </div> 
    </div> 
    <?php 
} 
else if(isset($_GET['failure'])) 
{ 
    ?> 
    <div class="container"> 
    <div class="alert alert-warning"> 
    <strong>SORRY!</strong> ERROR while inserting record ! 
    </div> 
    </div> 
    <?php 
} 
?> 

<div class="clearfix"></div><br /> 

<div class="container"> 


    <form method='post'> 

    <table class='table table-bordered'> 

     <tr> 
      <td>First Name</td> 
      <td><input type='text' name='first_name' class='form-control' required></td> 
     </tr> 

     <tr> 
      <td>Last Name</td> 
      <td><input type='text' name='last_name' class='form-control' required></td> 
     </tr> 

     <tr> 
      <td>Your E-mail ID</td> 
      <td><input type='text' name='email_id' class='form-control' required></td> 
     </tr> 

     <tr> 
      <td>Contact No</td> 
      <td><input type='text' name='contact_no' class='form-control' required></td> 
     </tr> 

     <tr> 
      <td colspan="2"> 
      <button type="submit" class="btn btn-primary" name="btn-save"> 
      <span class="glyphicon glyphicon-plus"></span> Create New Record 
      </button> 
      <a href="index.php" class="btn btn-large btn-success"><i class="glyphicon glyphicon-backward"></i> &nbsp; Back to index</a> 
      </td> 
     </tr> 

    </table> 
</form> 


</div> 

<?php include_once 'footer.php'; ?> 

редактировать-data.php

<?php 
include_once 'dbconfig.php'; 
if(isset($_POST['btn-update'])) 
{ 
    $id = $_GET['edit_id']; 
    $fname = $_POST['first_name']; 
    $lname = $_POST['last_name']; 
    $email = $_POST['email_id']; 
    $contact = $_POST['contact_no']; 

    if($crud->update($id,$fname,$lname,$email,$contact)) 
    { 
     $msg = "<div class='alert alert-info'> 
       <strong>WOW!</strong> Record was updated successfully <a href='index.php'>HOME</a>! 
       </div>"; 
    } 
    else 
    { 
     $msg = "<div class='alert alert-warning'> 
       <strong>SORRY!</strong> ERROR while updating record ! 
       </div>"; 
    } 
} 

if(isset($_GET['edit_id'])) 
{ 
    $id = $_GET['edit_id']; 
    extract($crud->getID($id)); 
} 

?> 
<?php include_once 'header.php'; ?> 

<div class="clearfix"></div> 

<div class="container"> 
<?php 
if(isset($msg)) 
{ 
    echo $msg; 
} 
?> 
</div> 

<div class="clearfix"></div><br /> 

<div class="container"> 

    <form method='post'> 

    <table class='table table-bordered'> 

     <tr> 
      <td>First Name</td> 
      <td><input type='text' name='first_name' class='form-control' value="<?php echo $first_name; ?>" required></td> 
     </tr> 

     <tr> 
      <td>Last Name</td> 
      <td><input type='text' name='last_name' class='form-control' value="<?php echo $last_name; ?>" required></td> 
     </tr> 

     <tr> 
      <td>Your E-mail ID</td> 
      <td><input type='text' name='email_id' class='form-control' value="<?php echo $email_id; ?>" required></td> 
     </tr> 

     <tr> 
      <td>Contact No</td> 
      <td><input type='text' name='contact_no' class='form-control' value="<?php echo $contact_no; ?>" required></td> 
     </tr> 

     <tr> 
      <td colspan="2"> 
       <button type="submit" class="btn btn-primary" name="btn-update"> 
       <span class="glyphicon glyphicon-edit"></span> Update this Record 
       </button> 
       <a href="index.php" class="btn btn-large btn-success"><i class="glyphicon glyphicon-backward"></i> &nbsp; CANCEL</a> 
      </td> 
     </tr> 

    </table> 
</form> 


</div> 

<?php include_once 'footer.php'; ?> 

delete.php

<?php 
include_once 'dbconfig.php'; 

if(isset($_POST['btn-del'])) 
{ 
    $id = $_GET['delete_id']; 
    $crud->delete($id); 
    header("Location: delete.php?deleted"); 
} 

?> 

<?php include_once 'header.php'; ?> 

<div class="clearfix"></div> 

<div class="container"> 

    <?php 
    if(isset($_GET['deleted'])) 
    { 
     ?> 
     <div class="alert alert-success"> 
     <strong>Success!</strong> record was deleted... 
     </div> 
     <?php 
    } 
    else 
    { 
     ?> 
     <div class="alert alert-danger"> 
     <strong>Sure !</strong> to remove the following record ? 
     </div> 
     <?php 
    } 
    ?> 
</div> 

<div class="clearfix"></div> 

<div class="container"> 

    <?php 
    if(isset($_GET['delete_id'])) 
    { 
     ?> 
     <table class='table table-bordered'> 
     <tr> 
     <th>#</th> 
     <th>First Name</th> 
     <th>Last Name</th> 
     <th>E - mail ID</th> 
     <th>Gender</th> 
     </tr> 
     <?php 
     $stmt = $DB_con->prepare("SELECT * FROM tbl_users WHERE id=:id"); 
     $stmt->execute(array(":id"=>$_GET['delete_id'])); 
     while($row=$stmt->fetch(PDO::FETCH_BOTH)) 
     { 
      ?> 
      <tr> 
      <td><?php print($row['id']); ?></td> 
      <td><?php print($row['first_name']); ?></td> 
      <td><?php print($row['last_name']); ?></td> 
      <td><?php print($row['email_id']); ?></td> 
      <td><?php print($row['contact_no']); ?></td> 
      </tr> 
      <?php 
     } 
     ?> 
     </table> 
     <?php 
    } 
    ?> 
</div> 

<div class="container"> 
<p> 
<?php 
if(isset($_GET['delete_id'])) 
{ 
    ?> 
    <form method="post"> 
    <input type="hidden" name="id" value="<?php echo $row['id']; ?>" /> 
    <button class="btn btn-large btn-primary" type="submit" name="btn-del"><i class="glyphicon glyphicon-trash"></i> &nbsp; YES</button> 
    <a href="index.php" class="btn btn-large btn-success"><i class="glyphicon glyphicon-backward"></i> &nbsp; NO</a> 
    </form> 
    <?php 
} 
else 
{ 
    ?> 
    <a href="index.php" class="btn btn-large btn-success"><i class="glyphicon glyphicon-backward"></i> &nbsp; Back to index</a> 
    <?php 
} 
?> 
</p> 
</div> 
<?php include_once 'footer.php'; ?> 

MY SQL:

CREATE TABLE IF NOT EXISTS `tbl_users` (`id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(25) NOT NULL, `last_name` varchar(25) NOT NULL, `email_id` varchar(50) NOT NULL, `contact_no` bigint(10) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 

Тем не менее, добавив ваше переключателе и будет обновлять этот ответ в ближайшее время.

+0

Спасибо Jigar –

Смежные вопросы