我有一个URL缩短脚本,使用户提供记录ID,然后重定向它们。但是,我希望能够将用户重定向到特定页面,如果他们搜索的记录不存在。我怎么能这样做?
我目前的代码是:
<?
mysql_connect("localhost","username","password");
mysql_select_db("database");
$sql="select * from shortened where (shortened.id='".mysql_real_escape_string($_GET['url'])."')";
$query=mysql_query($sql);
while($row = mysql_fetch_array($query)){
header('Location:'.$row['url']);
}
?>
我希望人们能够理解我想要描述的内容。
答案 0 :(得分:2)
把
if (!mysql_num_rows($query)) {
header('Location: http://google.com');
exit;
}
在while
部分之前
您的while
实际上可以改写为:
$row = mysql_fetch_array($query);
header('Location:'.$row['url']);
(是的,只需删除while
- 在这种情况下毫无意义)
答案 1 :(得分:1)
<?
mysql_connect("localhost","username","password");
mysql_select_db("database");
$sql="select * from shortened where (shortened.id='".mysql_real_escape_string($_GET['url'])."')";
$query=mysql_query($sql);
$row = mysql_fetch_array($query)
header('Location:'.$row['url']);
?>
虽然这里不需要循环
答案 2 :(得分:1)
这个怎么样?
<?
mysql_connect("localhost","username","password");
mysql_select_db("database");
$sql="select * from shortened where (shortened.id='".mysql_real_escape_string($_GET['url'])."')";
$query=mysql_query($sql);
if(mysql_num_rows($query) > 0){
$row = mysql_fetch_array($query);
$url = $row['url'];
} else {
$url = "http://othersite.com";
}
header("Location: $url");
?>