PHP学习笔记
2009-7-29
主题:用超链接实现在本页面显示不同信息
1 要点
1.1 echo "<a href=/"".$_SERVER["PHP_SELF"]."?id=".$rs->gID."/">详情</a>";
1.1.1 其中,预定义变量$_SERVER["PHP_SELF"]的含义在PHP手册中是被这样解释的:
“PHP_SELF”
当前正在执行脚本的文件名,与 document root 相关。举例来说,在 URL 地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将会得到 /test.php/foo.bar 这个结果。
1.1.2 使用?id=".$rs->gID这个查询字符串相当于使用了GET方法,以前以为只有表单<form></form>才能使用GET或是POST方法。因此,点击该超链接后,将把对应的id,也就是某条货物记录对应数据库中gID字段的值,传到本页面,而后使用SQL查询语句select * from goods_info where gID=".$_GET["id"]显示出特定的货物记录。
2 总结
变量$_GET["id"]的有无决定了当前页面显示的内容。
3 源代码
<?php
$host = "localhost";
$user = "root";
$password = "";//在这里输入登陆MySQL的密码
$link = mysql_connect($host,$user,$password);
mysql_select_db("shop");
mysql_query("SET NAMES gb2312");
echo "<html>/n";
echo "<head>/n";
echo "<title>/n";
echo "显示货物信息/n";
echo "</title>/n";
echo "</head>/n";
echo "<body>/n";
if(!$_GET["id"])//如果当前URL里面没有“id”这个变量,则显示所有货物的信息
{
$exec = "select * from goods_info";
$result = mysql_query($exec);
echo "<table border=/"1/">/n";
echo "<tr>/n";
echo "<td>ID</td>/n";
echo "<td>名称</td>/n";
echo "<td>价格</td>/n";
echo "<td>简介</td>/n";
echo "</tr>/n";
while($rs = mysql_fetch_object($result))
{
echo "<tr>/n";
echo "<td>".$rs->gID."</td>/n";
echo "<td>".$rs->gName."</td>/n";
echo "<td>".$rs->gPrice."</td>/n";
echo "<td>".$rs->gBrief."</td>/n";
echo "<td>";
echo "<a href=/"".$_SERVER["PHP_SELF"]."?id=".$rs->gID."/">详情</a>";//点击“详情”可以查看特定货物的信息
echo "</td>/n";
echo "</tr>/n";
}
}
else//如果当前URL里面有“id”这个变量,则显示特定货物的信息
{
$exec = "select * from goods_info where gID=".$_GET["id"];
$result = mysql_query($exec);
echo "<table border=/"1/">/n";
echo "<tr>/n";
echo "<td>编号</td>/n";
echo "<td>名称</td>/n";
echo "<td>价格</td>/n";
echo "<td>简介</td>/n";
echo "</tr>/n";
if($rs = mysql_fetch_object($result))
{
echo "<tr>/n";
echo "<td>".$rs->gID."</td>/n";
echo "<td>".$rs->gName."</td>/n";
echo "<td>".$rs->gPrice."</td>/n";
echo "<td>".$rs->gBrief."</td>/n";
echo "</tr>/n";
}
}
echo "</table>/n";
echo "</body>/n";
echo "</html>/n";
mysql_close();
?>