2016-12-23 15 views
-2

リソースタイトル#7を表示するのではなく、すべてのページタイトルの上にビデオタイトルを表示します。私も連想をフェッチMySQLを使用していたが、同じ結果がここにResouceのID#7ページタイトルの代わりにリソースID#7が表示されます

起こるコードです:

<?php 
require("./inc/connect.inc.php"); 
$video_id=""; 
$videoid = $_GET['videoid']; 
$check = mysql_query("SELECT * FROM videos WHERE video_id='$videoid'"); 
if (mysql_num_rows($check) == 1) { 
while ($row = mysql_fetch_assoc($check)) { 
$video_id = mysql_query("SELECT video_id FROM videos WHERE video_id='$video_id'"); 
$page_title = mysql_query("SELECT video_title FROM videos WHERE video_id='$video_id'"); 
echo("<title>$page_title</title>");}} 
?> 
+3

'$ page_title'はリソースです。コンテンツを取得したい場合は、そのコンテンツを 'フェッチする '必要があります。 – Federkun

+0

btw、 '$ row'を使うだけです。それを行うためにさらに多くのクエリを実行する必要はありません。 – Federkun

+0

コードを介して詳細を教えてください –

答えて

0

あなたがフェッチされた行を使用する必要があります - ループに再びクエリを送信する必要はありません

<?php 
require("./inc/connect.inc.php"); 
$videoid = (int) $_GET['videoid']; 
$result = mysql_query("SELECT * FROM videos WHERE video_id='$videoid'"); 
if (mysql_num_rows($result) == 1) { 
    $row = mysql_fetch_assoc($result); 
    $page_title = $row['video_title']; 
    echo("<title>$page_title</title>"); 
} 
?> 

Btw。 mysql_ *は推奨されておらず、最新のPHPバージョンで使用すると少なくとも警告が出ます(新しいものはmysql拡張子を持たず、エラーが発生するはずです)。

+0

それはうまくいかなかったのです。今回のページタイトルは私のヘッダーファイルで与えられたものでした。 –

+0

page_titleに間違った値が含まれていると、$ _GET varに間違った値が含まれているか、データベースに間違った値が含まれています。 – Philipp

+0

このような問題はありません。 –

0

あなたはinjection attacksまであなた自身を開くときに、を絶対にSQLで$ _GET値を直接使用してください。

+0

...あなたは 'filter_input'でSQLインジェクションから身を守ることはできません。 – Federkun

関連する問題