簡體   English   中英

重定向/回顯,如果找不到file.php?id = * /不存在

[英]redirect/echo if file.php?id=* not found/doesn't exist

大家好,PHP和MySQL newguy在這里。 編寫了這個php文件,該文件顯示相對於URL中指定的ID的行內容(例如,第3行是file.php?id = 3),此處為源: http : //pastie.org/1437017

如果我轉到一個相對行不存在的ID(例如.php?id = 99999999999999),我應該輸入什么來使其重定向到另一個頁面或回顯“ FAIL”。 我雖然要使用if命令,但無法弄清楚語法。 我也環顧了網上,但無濟於事。

多謝你們

您有以下幾行:

$name=mysql_result($result,$id,"name");

如果沒有ID $id行,則$name將為false 因此,您可以執行以下操作:

if (!$name) {
    header('Location: http://yoururl.com');
    die();
}

更好的辦法是將查詢修改為此:

$query="SELECT * FROM likes where id=$id";

然后做

if (!$num) {
    header('Location: http://yoururl.com');
    die();
}

其中$num是您現有代碼中設置的返回的行數。


編輯如該問題的其他地方所述,最好為404 Not Found頁面提供適當的內容,而不是重定向到另一個頁面。 我可以想象一個合適的重定向情況,但是如果您的重定向頁面顯示“找不到項目”,那么這是錯誤的方法。

我會將您的查詢重新設計為類似

SELECT * FROM table WHERE id = $id;

其中$ id是$ _GET值-當然已經過處理。

如果該查詢返回任何結果(mysql_num_rows($result)==1)

那么您知道已找到有效記錄。 如果不存在,則該ID不存在,因此您可以引發錯誤/重定向。

mysql_num_rows()為您提供選擇的行數,因此,如果該值為0,則說明沒有任何具有給定id的行。

if (mysql_num_rows($result)==0){
    echo "There are no rows with this id";
}else{
     // Your normal code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM