【问题标题】:activate and deactivate mysql record using php使用php激活和停用mysql记录
【发布时间】:2012-08-31 23:11:40
【问题描述】:

您好,我正在开发用户管理系统。我正在显示来自 db 的所有记录,并且成功执行了添加、编辑和删除操作。现在我需要在主页中显示为仅来自 Mysql 表的活动记录。我的管理控制中有 2 个链接,一个是激活的,另一个是停用的。如果我点击激活,记录将显示在主页中,停用意味着记录将隐藏在主页中。我插入了字段状态

datatype enum('active','deactive')`.

我的编码如下。在编码中我需要哪些改变?

Index.php:

<form method="post">
<table>

    <tr>
        <td>Title:</td>
        <td><input type="text" name="title" /></td>
    </tr>
    <tr>
        <td>Author</td>
        <td><input type="text" name="author" /></td>
    </tr>
    <tr>
        <td>Publisher Name</td>
        <td><input type="text" name="name" /></td>
    </tr>
    <tr>
        <td>Copyright Year</td>
        <td><input type="text" name="copy" /></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="submit" value="add" /></td>
    </tr>
</table>
<?php
if (isset($_POST['submit']))
    {      
    include 'db.php';

                    $title=$_POST['title'] ;
                    $author= $_POST['author'] ;                 
                    $name=$_POST['name'] ;
                    $copy=$_POST['copy'] ;

         mysql_query("INSERT INTO `books`(Title,Author,PublisherName,CopyrightYear) 
         VALUES ('$title','$author','$name','$copy')"); 


            }
?>
</form>
<table border="1">

            <?php
            include("db.php");


            $result=mysql_query("SELECT * FROM books");

            while($test = mysql_fetch_array($result))
            {
                $id = $test['BookID'];  
                echo "<tr align='center'>"; 
                echo"<td><font color='black'>" .$test['BookID']."</font></td>";
                echo"<td><font color='black'>" .$test['Title']."</font></td>";
                echo"<td><font color='black'>". $test['Author']. "</font></td>";
                echo"<td><font color='black'>". $test['PublisherName']. "</font></td>";
                echo"<td><font color='black'>". $test['CopyrightYear']. "</font></td>"; 
                echo"<td> <a href ='view.php?BookID=$id'>Edit</a>";
                echo"<td> <a href ='view.php?BookID=$id'>Activate</a>";
                echo"<td> <a href ='view.php?BookID=$id'>Deactivate</a>";
                echo"<td> <a href ='del.php?BookID=$id'><center>Delete</center></a>";

                echo "</tr>";
            }
            mysql_close($conn);
            ?>
</table>

View.php:
<?php
require("db.php");
$id =$_REQUEST['BookID'];

$result = mysql_query("SELECT * FROM books WHERE BookID  = '$id'");
$test = mysql_fetch_array($result);
if (!$result) 
        {
        die("Error: Data not found..");
        }
                $Title=$test['Title'] ;
                $Author= $test['Author'] ;                  
                $PublisherName=$test['PublisherName'] ;
                $CopyrightYear=$test['CopyrightYear'] ;

if(isset($_POST['save']))
{   
    $title_save = $_POST['title'];
    $author_save = $_POST['author'];
    $name_save = $_POST['name'];
    $copy_save = $_POST['copy'];

    mysql_query("UPDATE books SET Title ='$title_save', Author ='$author_save',
         PublisherName ='$name_save',CopyrightYear ='$copy_save' WHERE BookID = '$id'")
                or die(mysql_error()); 
    echo "Saved!";

    header("Location: index.php");          
}
mysql_close($conn);
?>
<!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=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form method="post">
<table>
    <tr>
        <td>Title:</td>
        <td><input type="text" name="title" value="<?php echo $Title ?>"/></td>
    </tr>
    <tr>
        <td>Author</td>
        <td><input type="text" name="author" value="<?php echo $Author ?>"/></td>
    </tr>
    <tr>
        <td>Publisher Name</td>
        <td><input type="text" name="name" value="<?php echo $PublisherName ?>"/></td>
    </tr>
    <tr>
        <td>Copyright Year</td>
        <td><input type="text" name="copy" value="<?php echo $CopyrightYear ?>"/></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="save" value="save" /></td>
    </tr>
</table>

</body>
</html>

del.php:

<?php
  include("db.php");  

    $id =$_REQUEST['BookID'];


    // sending query
    mysql_query("DELETE FROM books WHERE BookID = '$id'")
    or die(mysql_error());      

    header("Location: index.php");
?>

请给出一些想法或编码。这是我第一次使用这个概念。??

【问题讨论】:

    标签: php javascript jquery mysql ajax


    【解决方案1】:

    在使用主动非主动逻辑时..

    您必须遵循以下步骤:-

    1. 您必须创建一些带有枚举值的标志状态,用于活动和 无效的。
    2. 从数据库中获取数据时,您必须给出仅获取活动记录的条件。
    3. 如果您有活动或非活动按钮,您必须更新您的记录 基于此。

    如果您按照这些步骤操作,它将起作用!

    【讨论】:

      【解决方案2】:

      enum 用于boolean 类型不是一个好主意,因为它占用更多内存。

      您可以在记录的数据库中拥有类似active 标志的东西。由于您已经为每一行设置了一个唯一的 ID,您可以这样做:

      SELECT * FROM `books`;
      

      输出

      +----+-----------------------+----------------------+----------------+------+--------+
      | id | title                 | pub                  | author         | copy | active |
      +----+-----------------------+----------------------+----------------+------+--------+
      |  1 | A Matter of Time      | Outskirts Press      | Michael Bowler | 2010 |      0 |
      |  2 | The Promise of Change | Soul Mate Publishing | Rebecca Heflin | 2011 |      0 |
      +----+-----------------------+----------------------+----------------+------+--------+
      

      对于active,您可以设置0 隐藏或设置1 显示! :)

      现在让我们激活这本书,A Matter of Time。它有一个 ID 1

      UPDATE `books` SET `active` = '1' WHERE  `books`.`id` = 1;
      

      输出

      +----+-----------------------+----------------------+----------------+------+--------+
      | id | title                 | pub                  | author         | copy | active |
      +----+-----------------------+----------------------+----------------+------+--------+
      |  1 | A Matter of Time      | Outskirts Press      | Michael Bowler | 2010 |      1 |
      |  2 | The Promise of Change | Soul Mate Publishing | Rebecca Heflin | 2011 |      0 |
      +----+-----------------------+----------------------+----------------+------+--------+
      

      让我们只获取活动书籍:

      SELECT * FROM `books` WHERE `active` = 1;
      

      输出

      +----+-----------------------+----------------------+----------------+------+--------+
      | id | title                 | pub                  | author         | copy | active |
      +----+-----------------------+----------------------+----------------+------+--------+
      |  1 | A Matter of Time      | Outskirts Press      | Michael Bowler | 2010 |      1 |
      +----+-----------------------+----------------------+----------------+------+--------+
      

      使用它,您可以单独检索活动书籍。现在停用这本书:

      UPDATE `books` SET `active` = '0' WHERE  `books`.`id` = 1;
      

      PHP 代码

      <?php
          $result = mysql_query("SELECT * FROM `books` WHERE `active` = 1");
          while (false !== ($data = mysql_fetch_array($result)))
              echo $data["title"];
      ?>
      

      根据您的需要格式化代码。 :)

      【讨论】:

        【解决方案3】:

        当您插入或更新数据时,只需添加存储您的数据或记录状态的状态字段。

        当您在查询用户中显示SELECT * FROM books where status='active' 等条件时。

        你试试就行了。

        【讨论】:

          【解决方案4】:

          这激活和停用一个帐户。 create a status column in database table give type int and if u insert a database it automatically take 0 and when select table give condition where status="1" 1 means active and 0 is deactivate. 例如:select * from login where status='1'; Demo

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-11-07
            • 2017-05-27
            • 2014-08-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-02
            相关资源
            最近更新 更多