Php 如何制作一个可点击的列标题,使数据重新排序
第一部分如下。以下是第二部分: 我使用了下面提供的代码。我把东西搬来搬去,消除了所有的错误。但是,现在我的数据丢失了。我得到带有标题的表格,它们是可点击的(但是,如果没有表格,就不可能看到点击会发生什么)。有人能看到我做错了什么阻止数据显示吗Php 如何制作一个可点击的列标题,使数据重新排序,php,html,clickable,Php,Html,Clickable,第一部分如下。以下是第二部分: 我使用了下面提供的代码。我把东西搬来搬去,消除了所有的错误。但是,现在我的数据丢失了。我得到带有标题的表格,它们是可点击的(但是,如果没有表格,就不可能看到点击会发生什么)。有人能看到我做错了什么阻止数据显示吗 <html> 函数getRecords($query){ $con=mysql_connect(“localhost”、“movie”、“moviepw”); 如果(!$con) { die('无法连接:'.mysql_erro
<html>
函数getRecords($query){
$con=mysql_connect(“localhost”、“movie”、“moviepw”);
如果(!$con)
{
die('无法连接:'.mysql_error());
}
mysql_select_db(“movies”,$con);
$result=mysql\u query($query);
返回$result;
函数buildQuery($sortOrder){
$so=mysql\u real\u escape\u字符串($sortOrder);
$so=$so?$so:“电影标题”;
按“+$so”返回“从表1中选择*”;
}
?>
">
形象
谢谢大家!
第一部分:
我是PHP新手,对HTML非常生疏,所以这是一个真正的初学者问题。下面是正在编写的代码。但请注意,这不是我的完整代码。我尝试了很多不同的方法,但我发现了以下语法错误:
分析错误:语法错误,在第30行的C:\xampp\htdocs\moviedata3.php中出现意外的“?”
据我所知,我需要这个“?”
所以,整个事情是这样的:
<html>
<body>
<table>
<?php
$con = mysql_connect("localhost", "movie", "moviepw");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("movies", $con);
$result = mysql_query("SELECT * FROM table1");
echo "<table border='1'
<tr>
?>
<?php
while($row = mysql_fetch_array($result))
{
?>
<? { ?>
<a href="<?= mysql_query("SELECT * FROM table1 ORDER BY movie_title") ?>"><th>Title</th></a>
<a href="<?php echo("$PHP_SELF?execute=$result = mysql_query("SELECT * FROM table1 ORDER BY movie_rating")") ?>"><th>Rating</th></a>
<a href="<?php echo("$PHP_SELF?execute=$result = mysql_query("SELECT * FROM table1 ORDER BY movie_image")") ?>"><th>Image</th></a>
<a href="<?php echo("$PHP_SELF?execute=$result = mysql_query("SELECT * FROM table1 ORDER BY movie_description")") ?>"><th>Description</th></a>
</tr>";
<? } ?>
<tr>
<td><?= $row['movie_title']; ?></td>
<td><?= $row['movie_rating']; ?></td>
<td> <img src="<?= $row['movie_image'];?>"> </td>
<td><?= $row['movie_description']; ?></td>
</tr>
<?
}
echo "</table>";
mysql_close($con);
?>
</td></tr>
</table>
</body>
</html>
">
第30行的内容如下:
<a href="<?= mysql_query("SELECT * FROM table1 ORDER BY movie_title") ?>"><th>Title</th></a>
非常感谢!!!您似乎没有注意应该在哪里执行什么。查询DB是服务器端代码,单击按钮(在您的情况下是列标题)是客户端代码 所以试着用这样的方式重写你的剪报:
<?php
function buildQuery($sortOrder) {
$so = mysql_real_escape_string($sortOrder);
$so = $so ? $so : "movie_title";
return "SELECT * FROM table1 ORDER BY " + $so;
}
function getRecords($query) {
$con = mysql_connect("localhost", "movie", "moviepw");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("movies", $con);
$result = mysql_query($query);
return $result;
}
$sortOrder = $_GET['sortOrder'];
$query = buildQuery($sortOrder);
$records = getRecords($query);
?>
<table border='1'>
<thead>
<tr>
<th><a href="?sortOrder=movie_title">Title</a></th>
<th><a href="?sortOrder=movie_rating">Rating</a></th>
<th>Image</th>
<th><a href="?sortOrder=movie_description">Description</a></th>
</tr>
</thead>
<tbody>
<?php
while($row = mysql_fetch_array($result)){ ?>
<tr>
<td><?= $row['movie_title']; ?></td>
<td><?= $row['movie_rating']; ?></td>
<td> <img src="<?= $row['movie_image'];?>"> </td>
<td><?= $row['movie_description']; ?></td>
</tr>
<? } ?>
</tbody>
</table>
形象
">
您似乎没有注意应该在哪里执行什么。查询DB是服务器端代码,单击按钮(在您的情况下是列标题)是客户端代码
所以试着用这样的方式重写你的剪报:
<?php
function buildQuery($sortOrder) {
$so = mysql_real_escape_string($sortOrder);
$so = $so ? $so : "movie_title";
return "SELECT * FROM table1 ORDER BY " + $so;
}
function getRecords($query) {
$con = mysql_connect("localhost", "movie", "moviepw");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("movies", $con);
$result = mysql_query($query);
return $result;
}
$sortOrder = $_GET['sortOrder'];
$query = buildQuery($sortOrder);
$records = getRecords($query);
?>
<table border='1'>
<thead>
<tr>
<th><a href="?sortOrder=movie_title">Title</a></th>
<th><a href="?sortOrder=movie_rating">Rating</a></th>
<th>Image</th>
<th><a href="?sortOrder=movie_description">Description</a></th>
</tr>
</thead>
<tbody>
<?php
while($row = mysql_fetch_array($result)){ ?>
<tr>
<td><?= $row['movie_title']; ?></td>
<td><?= $row['movie_rating']; ?></td>
<td> <img src="<?= $row['movie_image'];?>"> </td>
<td><?= $row['movie_description']; ?></td>
</tr>
<? } ?>
</tbody>
</table>
形象
">
我相信,您的问题是从这一行开始的:
echo "<table border='1'
echo”我相信您的问题是从这一行开始的:
echo "<table border='1'
echo”我应该补充一点,第30行后面的部分根本不是我的代码,而是我在研究中发现的,我正试图重写它,以便它能做我想做的事情。它也不起作用。很抱歉,整个代码只是一团糟,一个接一个的语法错误,从echo
开始,前面几行缺少一个结尾引号——我我想你应该删减它,一次只从一行开始,只有在代码编译时才添加更多。我应该补充一点,第30行后面的部分根本不是我的代码,而是我在研究中发现的,我正在试图重写它,以便它能做我想做的事情。它也不起作用。对不起,整个代码只是一团乱,还有一个语法错误或者,从前面几行缺少结尾引号的echo开始,我认为您应该将它缩减,一次从一行开始,只有在代码编译时才添加更多。非常感谢!我使用了它,但仍然存在一些顺序错误和某种报告错误,我得到了修复。但是,我的表数据是不再被拉入。数据在数据库中。我一直正确地连接到数据库,所以我不知道为什么它没有通过。也许事情的顺序,虽然它没有错误,但正在停止拉入数据?谢谢。我在原始帖子中添加了我已修复的内容。@Cherylance put}
after返回$result代码>此线路非常感谢!我使用了这个,但仍然有一些订单错误和一些报告错误,我得到了修复。但是,我的表数据不再被拉入。数据在数据库中。我已经正确地连接到数据库,所以我不知道为什么它不能通过。也许事情的顺序是,虽然没有错误,但停止数据的提取?谢谢。我在原来的帖子中添加了我所修复的内容。@cherylance在返回$result之后放置}
代码>此行
<a href="<?