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'
:あなたは、クエリ内の変数の周り''
必要
これはうまくいきました。今私はちょっと混乱しています。なぜなら、 'id'クエリではそれがなくても動作し、このオブジェクトを必要とするからです。それは数字とアルファベットの違いですか? –
と思われますが、$ articleIDを '$ articleID'に変更する必要があります( – gavgrif
も同様)。助けてくれてありがとう。私はそれができるようになるとすぐに受け入れます。 –