2016-04-02 19 views
1

URLパラメータに応じてデータを取得するWebページを構築しています。PHP URLパラメータを変更した後にMySQLからデータを取得する

可能なパラメータは2つあります。

1:$_GET['id']

2を使用して取得されid:私はidので、それは魔法のように動作idパラメータを使用してデータを取得していた場合$_GET['name']

を使用して取得されnameは常に数値で、アルファベットのないテキスト。

しかし、nameパラメータを使用してデータを取得しようとすると、結果は得られません。

nameパラメータは、アーティクルのタイトルがパラメータであるアーティクルのデータベースをチェックしています。

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

、データベース内の記事名は次のようになります:9 Clues To Solving This Parameter Issue

私はすでに削除するためにいくつかの行を書いたURLでnameパラメータがそうのようになります。例えば

私の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

すべてが一致するので、私は迷っています。例えば'$articleName':あなたは、クエリ内の変数の周り''必要

答えて

2

'$のarticleName':クエリで

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

これはうまくいきました。今私はちょっと混乱しています。なぜなら、 'id'クエリではそれがなくても動作し、このオブジェクトを必要とするからです。それは数字とアルファベットの違いですか? –

+0

と思われますが、$ articleIDを '$ articleID'に変更する必要があります( – gavgrif

+0

も同様)。助けてくれてありがとう。私はそれができるようになるとすぐに受け入れます。 –

1

$ articleNameは、次のように引用符で囲む必要があります。例: $ articleQuery = mysqli_query($ conn、 "SELECT * FROM currentArticles WHERE article_name = '$ articleName'");

+0

ありがとうございます。最初の答えは正しいが、ウェブサイトの時間的制約のために受け入れることができなかった。私は2つの答えを受け入れることができなかったので、ここupvoteです:) –

+0

@ JesseElser私の喜び。 –

関連する問題