显示数据的最佳方式

时间:2011-08-02 03:35:15

标签: php mysql

我有一张带有ID,名字,状态和表格上方的表格,我想要4个链接,这些链接可以读取全部,热,冷,冷。点击链接,下表仅显示状态=热门的用户。是否最好在php中创建新页面以显示相应状态的所有用户,或者是否有更好的方法来完成所有这些都是一个页面完成?

提前谢谢!

3 个答案:

答案 0 :(得分:1)

使用Javascript的决定取决于您一次显示多少条记录。如果您在该表中有很多行,那么HTML将变得非常大并且使用JS进行操作会占用大量资源。

如上所述,我建议将参数传递给PHP脚本以过滤具有正确状态的用户,类似于以下内容:

<强> HTML

<div class="filter-status">
    <a href="/script.php?status=all">All</a> -
    <a href="/script.php?status=hot">Hot</a> -
    <a href="/script.php?status=warm">Warm</a> -
    <a href="/script.php?status=cold">Cold</a>
</div>

PHP SCRIPT

// check the status is set in the arguments, and that its something we expect
if(isset($_GET['status']) 
    && in_array($_GET['status'], array('all', 'hot', 'warm', 'cold'))){
    $status = $_GET['status'];
}
else {
    $status = 'all'; // default to show all rows
}

// get the rows from the database based on the status
$query = "SELECT * FROM table ";
if($status !== 'all')
    $query .= "WHERE status = '".$status."'";

$query .= ';';

// do your mysql query as normal

然后,如果您的脚本位于www.domain.com/script.php,则可以访问www.domain.com/script.php?status=hot来过滤所有热门脚本。

答案 1 :(得分:0)

对于这种情况,你可以做两件事,

  1. 您可以使用Javascript获取每行“status”的值,并只显示这些行。

  2. 你可以使用PHP和Ajax从不同的页面中获取内容并使用jQuery(因为它比普通的'javascript更加舒服)来获取结果。

  3. 我会使用选项#2,因为在较大的表格中你可能想要限制结果或节省资源会更好。

    /* JavaScript */
    //NOTE THIS IS JQUERY, NOT REGULAR JAVASCRIPT!
    //YOU MUST INCLUDE THE JQUERY LIBRARY BEFORE USING THIS!
    
    $(document).ready(function() { //When DOM is ready.
        $table = $('#status-table'); //Cache the table, no need to select it every time.
        $('a.status').click(function() { //Add click handler, "when the link is clicked.."
            status = $(this).text(); //Status = the text it has <a>TEXT</a>
            $.get(
                "filter-status.php", //Target
                'status='+status, //Data
                function(data) { //Callback
                    $table.hide().empty().append(data).slideDown();
                }
            );
        })
    })
    

    让PHP为表生成行。

答案 2 :(得分:-1)

你应该只在单页中这样做..这是最好的做法。 我确定你正在按钮的点击重新加载页面 你应该解雇你将有条件的查询

$sql = "SELECT * FROM TABLE WHERE 1=1".(isset($_REQUEST['status'])? " AND status = '".$_REQUEST['status']."'":"");