请有人帮助我建立第一个从MySQL表中提取信息的网站,到目前为止,我成功地连接到数据库并提取了我需要的信息。
我的网站被设置为显示表中的单个记录,但我需要某种方式来更改每个记录的URL,这样我就可以将页面链接到特定的记录。我在facebook等网站上看到,每个人的个人资料都以一个唯一的数字结尾。例如。http://www.facebook.com/profile.php?id=793636552
我想把我的Id建立在表上的主键上,例如location_Id
到目前为止,我已经包含了我的php代码
<?php
require "connect.php";
$query = "select * from location limit 1";
$result = @mysql_query($query, $connection)
or die ("Unable to perform query<br>$query");
?>
<?php
while($row= mysql_fetch_array($result))
{
?>
<?php echo $row['image'] ?>
<?php
}
?>
感谢
使用$_GET从脚本的查询中检索内容(在某种程度上也称为命令行):
<?php
$id = (intval)$_GET['id']; // force this query parameter to be treated as an integer
$query = "SELECT * FROM location WHERE id={$id};";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) == 0) {
echo 'nothing found';
} else {
$row = mysql_fetch_assoc($result);
echo $row['image'];
}
如果这是您第一次涉足MsSQL开发,需要考虑很多事情。
SQL注入
有人可能会通过使用你的url中的id插入/删除等内容(小心!,清除你的输入)
泄漏数据
有人可能请求id=1234924,而您期望id=12134(因此可能会显示一些敏感数据,等等)。
使用轻型框架
如果你以前没有看过,我建议你使用框架(CodeIgniter或CakePHP)、mysql调用、连接、验证都是样板代码(总是必须这样做)。最好是节省时间并着手制作你的应用程序,而不是重新发明轮子。
从数据库中选择记录后,可以使用header()
函数将用户重定向到其他url。示例:
header('Location: http://yoursite.com/page.php?id=123');
您需要创建一个链接,指向与您想要的URL相同的(或新页面),然后逻辑检查参数以提取特定图像。。。
如果你列出了所有的,你可以:
echo "<a href=samepage.php?id=" . $row['location_id'] . ">" . $row['name'] . "</a>"
这将使链接。。现在,当他们点击它时,你会想在samepage.php中查找它:
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
//query the db and pull that image..
}
您要查找的是查询字符串或get variables
。您可以使用$_GET['name']
通过php访问get变量。例如:http://www.facebook.com/profile.php?id=793636552CCD_ 5之后的所有内容都是查询字符串。变量的名称是id
,因此要通过php访问它,您需要使用$_GET['id']
。您可以在此基础上在变量之间构建一个&
。例如:http://www.facebook.com/profile.php?id=793636552&照片=1234这里有$_GET['id']
和$_GET['photo']
。
变量可以很容易地从URL中提取出来:
www.site.com/index.php?id=12345
我们可以使用$_GET['id']访问id后的号码
echo $_GET['id'];
输出:
12345
因此,如果你有一个记录列表(或者图像,在你的情况下),你可以更容易地链接到它们:
$query = mysql_query(...);
$numrows = mysql_num_rows($query);
for ($num=0;$num<=$numrows;$num++) {
$array = mysql_fetch_array($query);
echo "<a href='"./index.php?id=". $row['id'] ."'" />Image #". $row['id'] ."</a>";
}
它会像这样显示你的所有记录:
Image #1 (links to: http://www.site.com/index.php?id=1)
Image #2 (links to: http://www.site.com/index.php?id=2)
Image #3 (links to: http://www.site.com/index.php?id=3)
...