最好的方式来显示数据
我有一个ID,名字,状态和表上方的表我想要4个链接,阅读所有,热,温暖,冷。通过点击链接,下面的表格将只显示状态=热的用户。最好是在php中创建新页面以显示所有用户的相应状态,或者是否有更好的方法来完成它,以便它们全部在单个页面上完成?最好的方式来显示数据
预先感谢您!
你应该只在单个页面上做..这是最好的做法。 我相信你是在按钮的点击刷新页面,然后 你应该火的查询中,你将不得不条件
$sql = "SELECT * FROM TABLE WHERE 1=1".(isset($_REQUEST['status'])? " AND status = '".$_REQUEST['status']."'":"");
这是相当开放的SQL注入,如果你使用这种方法确保你至少逃脱$ _REQUEST变量,然后在查询中使用它们。 – phindmarsh
使用JavaScript会回落到多少条记录,你会立即有显示的决定。如果你在该表中有一行lot,那么你的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脚本
// 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
来过滤所有热点。
我想你忘了更改''标记上URL的查询部分。 –
已注册并更正,谢谢 – phindmarsh
您的代码已广泛用于SQL注入。例如,'script.php?status =; TRUNCATE TABLE table' –
对于这种情况,你可以做两件事情,
您可以使用JavaScript来获取每行的“状态” TD的价值,只有显示这些行。
您可以使用PHP和Ajax从不同的页面获取该内容,并让jQuery(因为它更舒适,然后使用普通ol'javascript)来获取结果。
我将使用选项#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为表生成行。
JavaScript会为你工作吗? (这是谁的?你会担心人们禁用JavaScript?) – jswolf19
我可以使用java,没有人会禁用它 – Josh