请有人帮助我建立我的第一个从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
}
?>
由于
答案 0 :(得分:3)
使用$ _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'];
}
答案 1 :(得分:1)
如果这是你第一次涉足MsSQL开发,有很多事情需要考虑。
SQL注入
有人可能会通过您的网址使用您的ID来插入/删除等事情(小心!,清理您的输入)
泄露数据
有人可能会请求id = 1234924并且您希望id = 12134(因此可能会显示某些敏感数据等)。
使用轻型框架
如果您之前没有看过,我建议像框架(CodeIgniter或CakePHP),mysql调用,连接,验证都是样板代码(总是必须这样做)。最好是节省时间并制作应用程序,而不是重新发明轮子。
答案 2 :(得分:0)
从数据库中选择记录后,您可以使用header()
功能将用户重定向到其他网址。例如:
header('Location: http://yoursite.com/page.php?id=123');
答案 3 :(得分:0)
您需要根据需要使用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..
}
答案 4 :(得分:0)
您要查找的是查询字符串或get variables
。您可以通过php使用$_GET['name']
访问get变量。例如:
http://www.facebook.com/profile.php?id=793636552
?
之后的所有内容都是查询字符串。变量的名称是id
,因此要通过php访问它,您将使用$_GET['id']
。您可以在这些变量之间构建&
。例如:
http://www.facebook.com/profile.php?id=793636552&photo=12345
在这里,我们有$_GET['id']
和$_GET['photo']
。
答案 5 :(得分:0)
变量可以很容易地从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)
...