2011-05-31 94 views
2

请有人可以帮助我构建我的第一个从MySQL表中获取信息的网站,迄今为止我成功地设法连接到数据库并获取我需要的信息。PHP网站的URL请帮助!

我的网站设置为显示表中的单个记录,但是我需要某种方式来更改每条记录的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

嗨,大家好,感谢您的意见,对不起,我只是PHP昨天开始,我的知识是非常非常基本的,是任何一个能够重写上面的代码,以包括将记录Id号码分配给该网址的声明,ive有一个尝试,但即时获取错误标志,现在我有点失去感谢。 – Craig 2011-05-31 20:45:18

回答

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

Craig,这样可以正常工作,而且由于Marc使用'(intval)',所以它很安全。然而,就其他任何事情而言,你应该逃避你的数据。记住这一点,所以你不会遇到严重的SQL注入漏洞。 – Brad 2011-05-31 20:21:10

0

一旦你选择了从数据库中的记录,你可以将用户重定向到使用header()功能不同的URL。例如:

header('Location: http://yoursite.com/page.php?id=123 ');

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.. 
} 
1

有很多事情要考虑,如果这是您第一次涉足MSSQL发展。

SQL注入

有人可能会通过使用您的ID从您的网址插入/删除等事(小心!清理你的输入)

泄漏数据

有人可能请求ID = 1234924,你期望ID = 12134(所以一些敏感数据可以显示,等等)。

使用光框架

如果你以前没有看,我建议像一个框架(CodeIgniter,或CakePHP的),MySQL调用,连接,验证都是样板代码(总是要做他们)。最好节省时间,并开始制作应用程序,而不是重新发明轮子。

0

变量可以拉出的URL中很容易:

www.site.com/index.php?id=12345

,我们可以用$ _GET ID后访问次数[ '身份证']

echo $_GET['id']; 

输出:

12345 

所以,如果你有一个记录列表(或图像,你的情况),你可以霖k到他们更容易:

$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) 
...