2012-07-31 69 views
0

我正在研究一個小型論壇/論壇。我已經完成主題發佈;它可以在數據庫和爵士樂中看到。現在我正在檢索主題列表,並在單擊主題時查看它。這工作正常,除了當我點擊它時,頁面變爲空白,沒有顯示任何內容。我知道問題在於我無法獲得我單擊的帖子的ID,因爲它在if-else語句中使用while循環。這是我的代碼現在。PHP主題查看和回覆腳本

<?php 
    require('init.php'); 

    $get_threads = mysql_query("SELECT * FROM GOT ORDER BY time"); 
    if (!isset($_GET['view_thread'])) { 
    $get_threads = mysql_query("SELECT * FROM GOT ORDER BY time"); 
    while ($select_threads = mysql_fetch_assoc($get_threads)) { 
     $title = $select_threads['title']; 
     $time = $select_threads['time']; 
     $user = $select_threads['user']; 
     $id = $select_threads['id']; 
     $form = '<center> 
       <form method="get" action=""> 
       <input type="submit" name="view_thread" id="view_thread" value="'.$title.'" /> 
       <input type="hidden" name="thread_id" id="thread_id" value="'.$id.'" /> 
       </form> 
       </center>'; 
     echo '<div id="post_info">'.$form.'<hr>Posted by: <b>'.$user.'</b> '.$time.'</div>'; 
    } 
    } else { 
    $get_posts = mysql_query("SELECT * FROM GOT WHERE id='$id'"); 
    $select_posts = mysql_fetch_assoc($get_posts); 
    $content = $select_posts['content']; 
    echo $content; 
    } 
?> 

我需要得到$id這樣我就可以抓住後,後來都可以通過數據庫的答覆。我是PHP新手,所以我可能錯過了一些東西。謝謝你的幫助!

+0

請添加$ id = $ _ GET ['thread_id']; after} else { – Huseyin 2012-07-31 22:45:07

+0

請不要使用'mysql_ *'函數來編寫新的代碼。他們不再維護,社區已經開始[棄用程序](http://goo.gl/KJveJ)。查看[*紅色框*](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/3gqF9)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/vFWnC)。 – orourkek 2012-07-31 22:52:20

回答

-1

第一:你的參數被命名爲 「thread_id單」,讓您的查詢應該是

$get_posts = mysql_query("SELECT * FROM GOT WHERE id='$thread_id'"); 

但我強烈建議

  1. 去POST而不是GET
  2. 使用mysql_real_escape避免SQL注入
+0

如果我使用帖子,人們將無法使用URL導航到主題。 – NardCake 2012-07-31 22:41:22

+0

非常感謝你!三天浪費天。 – NardCake 2012-07-31 22:50:13

+0

請不要使用'mysql_ *'函數來編寫新代碼。他們不再維護,社區已經開始[棄用程序](http://goo.gl/KJveJ)。查看[*紅色框*](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/3gqF9)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/vFWnC)。 – orourkek 2012-07-31 22:52:27