2

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

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

我的编码如下。在编码时我需要什么改变?

索引.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>

德尔.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");
?>

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

4

4 回答 4

4

虽然使用主动非主动逻辑..

您必须遵循以下步骤:-

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

如果您遵循这些步骤,它将起作用!

于 2012-09-07T04:47:30.707 回答
1

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"];
?>

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

于 2012-09-07T04:48:49.243 回答
0

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

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

这对你有用,试试吧。

于 2012-09-07T04:54:56.933 回答
0

这激活和停用帐户。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'; 演示

于 2014-01-29T10:39:21.383 回答