这是一个被关闭的问题的重写,因为它太模糊了,而且我没有正确地插入代码。希望这更有意义。
我有一个包含'title‘和'author’的大型SQL数据库。我使用PHP设置了一个查询,在一个页面上只选择以A开头的标题(标题如'A%'):
$result = mysql_query("SELECT * FROM table WHERE (title LIKE 'A%') ORDER BY title ASC");
//fetch the data from the database
while ($row = mysql_fetch_array($result)) {
$DirPath = $row{'filename'};
//To get the innermost dir 'display just mp3'
$InnermostDir = basename(rtrim($DirPath, '/'));
echo "<tr><td align='justify'>";
echo $row{'title'} ;
echo "</td><td align='center'>";
echo $row{'author'} ;
echo "</td><td align='center'>";
echo $row{'publisher'} ;
echo "</td><td align='center'>";
echo $row{'pages'} ;
echo "</td><td align='center'>";
echo $row{'year'} ;
echo "</td><td align='center'>";
echo $row{'type'} ;
echo "</td><td align='center'>";
echo $row{'genre'} ;
echo "</td><td align='center'>";
echo $row{'location'} ;
echo "</td><td align='center'>";
echo $row{'id'} ;
echo "</td><td align='center'>";
echo $row{'shortauthor'} ;
echo "</td></tr>";
}
?>
</table>
<?php
//close the connection
mysql_close($dbhandle);
?>http://sanctuary-westminster.org/library/epa.php
目前,我只复制了第25页,其中唯一的区别是字母更改(页面标题更改以反映字母),然后使用一个简单的href="epb.php“将它们连接在一起。因此,在epb.php页面上:
$result = mysql_query("SELECT * FROM table WHERE (title LIKE 'B%') ORDER BY title ASC");http://sanctuary-westminster.org/library/epb.php
这是一个非常冗长和没有吸引力的方法,任何改变都需要改变所有的页面。我尝试使用$letter来代替链接,并使用类似于'A%‘的类'$letter%’来代替:
$result = mysql_query("SELECT * FROM table WHERE (title LIKE 'row{'letter'}%') ORDER BY title ASC");但这失败了;它不提供任何错误消息,查询不会发生,因为输入值不正确,因此不会返回任何内容。希望这更有意义,并为以前道歉。
(我还研究了使用下拉菜单的方法,其中"Submit“命令存储从选项中选择的字母,然后在查询中使用它,但当我查看下拉菜单和SQL时,唯一的示例似乎与用表填充菜单有关,而不是使用表创建查询。不确定这是否会更好)
发布于 2012-03-07 00:01:49
有一个页面,标题为lib.php,并传递一个参数,如lib.php?letter=A
将代码更改为:
$result = mysql_query("SELECT * FROM table WHERE (title LIKE '" . mysql_real_escape_string($_GET['letter']) . "%') ORDER BY title ASC");现在,相同的文件lib.php可以生成以前的所有页面。
https://stackoverflow.com/questions/9593802
复制相似问题