首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将(标题如'A%')改为B或C等(重写)

将(标题如'A%')改为B或C等(重写)
EN

Stack Overflow用户
提问于 2012-03-06 23:56:11
回答 1查看 815关注 0票数 3

这是一个被关闭的问题的重写,因为它太模糊了,而且我没有正确地插入代码。希望这更有意义。

我有一个包含'title‘和'author’的大型SQL数据库。我使用PHP设置了一个查询,在一个页面上只选择以A开头的标题(标题如'A%'):

代码语言:javascript
复制
$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页面上:

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM table WHERE (title LIKE 'B%') ORDER BY title ASC");

http://sanctuary-westminster.org/library/epb.php

这是一个非常冗长和没有吸引力的方法,任何改变都需要改变所有的页面。我尝试使用$letter来代替链接,并使用类似于'A%‘的类'$letter%’来代替:

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM table WHERE (title LIKE 'row{'letter'}%') ORDER BY title ASC");

但这失败了;它不提供任何错误消息,查询不会发生,因为输入值不正确,因此不会返回任何内容。希望这更有意义,并为以前道歉。

(我还研究了使用下拉菜单的方法,其中"Submit“命令存储从选项中选择的字母,然后在查询中使用它,但当我查看下拉菜单和SQL时,唯一的示例似乎与用表填充菜单有关,而不是使用表创建查询。不确定这是否会更好)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-07 00:01:49

有一个页面,标题为lib.php,并传递一个参数,如lib.php?letter=A

将代码更改为:

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM table WHERE (title LIKE '" . mysql_real_escape_string($_GET['letter']) . "%') ORDER BY title ASC");

现在,相同的文件lib.php可以生成以前的所有页面。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9593802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档