PHP站点URL ID请帮忙!

时间:2011-05-31 20:15:38

标签: php sql url

请有人帮助我建立我的第一个从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
}
?>

由于

6 个答案:

答案 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)
...