2012-03-06 22 views
3

这是已被关闭,因为它太模糊,我还没有正确地插入代码中的问题的重写。希望这更有意义。变化(标题LIKE“A%”)到B或C等(重写)

我有一个包含“标题”和“作者”的大型SQL数据库。我已经建立了使用PHP的查询,将只选择A开头的标题 - 在一个页面上 - (标题LIKE“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

这是一个非常长篇大论,没有吸引力的办法,任何更改需要更改的所有页面。我使用$信,而不是链接尝试和具有LIKE“A%”像“$字母%”,而不是:

$result = mysql_query("SELECT * FROM table WHERE (title LIKE 'row{'letter'}%') ORDER BY title ASC"); 

但失败了;它不会给出任何错误消息,查询不会发生,因为输入值不正确,因此没有任何内容被返回。 希望之前能够更好地理解和道歉。 (我也看过使用下拉菜单的方式,其中的“提交”命令存储从选项中选择的字母,然后在查询中使用它,但是当我看下拉菜单和SQL的唯一示例似乎都与填充菜单有一张桌子,用一个不是创建一个查询。不知道这会更好地工作)

回答

3

有一个页面,标题为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,可以生成从之前的所有页面。

+0

感谢保罗,完美的作品 – Phil 2012-03-09 04:56:38

相关问题