2016-04-02 137 views
1

我正在構建一個網頁,根據URL參數來檢索數據。PHP修改URL參數後從MySQL中檢索數據參數

有兩個可能的參數。

1:這是使用$_GET['id']

2檢索idname其使用$_GET['name']

檢索時我使用的id參數它像自id一個魅力檢索數據始終是一個數值和從來沒有字母文字。

但是當試圖使用name參數檢索數據時,我沒有得到任何結果。

name參數正在檢查數據庫中的文章標題是參數。

例如,在URL中name參數看起來像這樣:

http://example.com/safetyarticles/view.php?name=9-clues-to-solving-this-parameter-issue

而且在數據庫中的文章名稱爲:9 Clues To Solving This Parameter Issue

我已經寫了一些行刪除在我的URL參數中的破折號空格,然後大寫每個單詞來匹配文章名稱,但我沒有得到任何結果。

這是我寫的代碼:

$conn = getConnected("safetyArticles"); 
if(isset($_GET['id'])) { 
    $articleID = $_GET['id']; 
    $articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_id = $articleID"); 
    $article = mysqli_fetch_array($articleQuery); 
} 
else if(isset($_GET['name'])) { 
    $articleName = $_GET['name']; 
    $articleName = preg_replace("/[\-]/", " ", $articleName); // Replace dashes in URL parameter with spaces 
    $articleName = ucwords($articleName); // Uppercase first letter of each word of URL parameter 
    $articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_name = $articleName"); 
    $article = mysqli_fetch_array($articleQuery); 
} 

據我所知,用空格替換破折號和大寫每個單詞應該在數據庫中,$articleName匹配article_name

我確實增加了一行echo $articleName來查看輸出結果是什麼,結果是9 Clues To Solving The Mystery Of The Pilot Car,它與數據庫中的標題相匹配,但結果未被拉出。

我直接從數據庫中拷貝出來,只是爲了表明標題確實是一樣的:9 Clues To Solving The Mystery Of The Pilot Car

我不知所措,因爲所有事情都應該如此。

回答

2

你需要周圍查詢的變量'':如'$articleName':需要被引用這樣在查詢

$articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_name = '$articleName'"); 
+0

工作。現在我有點困惑,因爲在'id'查詢中,它沒有它們,並且這個它需要它們。這是數字和字母的差異嗎? –

+0

可能 - 但您應該將$ articleID更改爲'$ articleID'以及 – gavgrif

+0

會這樣做。謝謝您的幫助。我會盡快讓我接受。 –

1

$ ArticleName的: '$ ArticleName的'。例如 $ articleQuery = mysqli_query($ conn,「SELECT * FROM currentArticles WHERE article_name ='$ articleName'」);

+0

謝謝。第一個答案是正確的,但由於時間限制,我無法接受網站。由於我不能接受2答案這裏是一個讚揚:) –

+0

@JesseElser我的榮幸。 –