如果记录不在数据库中,则重定向用户

时间:2012-01-28 00:13:48

标签: php mysql html sql

我有一个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']);
}

?>

我希望人们能够理解我想要描述的内容。

3 个答案:

答案 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");

?>