2016-05-02 9 views
-4

私は自分のFacebookアカウントにリンクされたブログのウェブサイトを作成しています。ユーザーに古いブログを見せたいと思っています。したがって、タイトルに基づいてURLを出力するループを作成しています。このURLは、blog_idに基づいて新しいページを動的に生成します。しかし、私には2つの問題があります。URLと未定義のインデックスIDを作成する

  1. 私は唯一のハイパーリンクを出力するので、しないのループを正しく
  2. 何もtitle.phpページに生成されていないを通じて、およびURLを介してデータを送信する際、私は未定義のインデックスblog_idを取得

==============================

$query="SELECT title FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query) or die(mysqli_error()); 
$rstitle=mysqli_fetch_assoc($result); 


mysqli_close($conn); 


do { ?> 
<a href="title.php?blog_id= <?php echo $rstitle['blog_id']; ?> "> 
<ul> 
<li id = "title"> <?php echo $rstitle['title']; ?> </li><br /> 
</ul> 
</a> 

<?php } while ($rstitle=mysqli_fetch_assoc($result)) ?> 

title.phpページ

にリンク
<?php 
$servername = "localhost"; 
$dbusername = "root"; 
$dbpassword = ""; 
$dbname = "blog"; 

// create connection 
$conn = mysqli_connect($servername, $dbusername, $dbpassword, $dbname); 

// check connection 
if (!$conn) 
{ 
    die("Connection failed: " . mysqli_connect_error()); 
} 
// we get here the connection to the database was successful 



$query="SELECT blog FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query)or die(mysql_error()); 
$rstitle=mysqli_fetch_assoc($result); 

if (mysqli_num_rows($result) > 0) 
{ 
    echo "<table border='0' style='width:50%'>"; 


    while($rstitle = mysqli_fetch_assoc($result)) 
    { 
     echo "<tr>"; 
     echo "<td>" . $rstitle['blog'] . "</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
} 



mysqli_close($conn); 

?> 
+0

あなたはタイトルだけを選択するので、あなたの配列には 'title'キーしかありません。 'SELECT blog_id、title'を使ってください。 – fusion3k

+0

そして* title.php *ページでは、あなたは' $ _GET'のスーパーグローバルを使ってブログIDを捕まえていません。 –

答えて

0

コードの最初のセクションにはいくつかの問題があります。ここでは、あなたの変更を表示するために役立つコメントが、クリーンアップされています。そのセクションであなたのUndefined Index問題を解決しなければならない、とのリンクの適切なリストを作成します

// Add "blog_id" to the list of fields selected here, so available below 
$query="SELECT blog_id, title FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query) or die(mysqli_error()); 
$rstitle=mysqli_fetch_assoc($result); 

// Use the "while() {}" construction - it's easier to read 
while ($rstitle = mysqli_fetch_assoc($result)) { 
// You had a space between blogid= and the ID - this will cause problems, so removed the space 
?> 
<a href="title.php?blog_id=<?php echo $rstitle['blog_id']; ?> "> 
<ul> 
<li id = "title"> <?php echo $rstitle['title']; ?> </li><br /> 
</ul> 
</a> 
<?php } 
// close your connection - (not necessary) - at the END of your code 
mysqli_close($conn); 
?> 

。あなたのtitle.phpコードで

、(それの一部のみを以下にコピーされます)、あなたはどこにでも$blog_idを設定ではありません。

$servername = "localhost"; 
$dbusername = "root"; 
$dbpassword = ""; 
$dbname = "blog"; 

// create connection 
$conn = mysqli_connect($servername, $dbusername, $dbpassword, $dbname); 

// check connection 
if (! $conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

// Since the blog_id is being passed in the URL, get it. 
// And since you're NOT preparing your query, but passing it straight in, 
// we have to be sure to SANITIZE it: 
$blog_id = (isset($_GET['blog_id'])) ? (int)$_GET['blog_id'] : 0; 

// I would recommend defending against no blog_id! 
if (! $blog_id) { 
    echo 'Invalid blog id!'; 
    die(); 
} 

$query="SELECT blog FROM admin WHERE blog_id = $blog_id"; 
$result=mysqli_query($conn, $query)or die(mysql_error()); 
$rstitle=mysqli_fetch_assoc($result); 
+0

修正していただきありがとうございます。最初のページの問題は間違ったSELECTステートメントによって引き起こされました。私はIDを渡すとblog_idをサニタイズする必要があるというあなたの助けなしに決して解明できませんでした。 – Zlini

関連する問題