2014-01-08 54 views
0

這是用戶發佈帖子的代碼。如何根據用戶輸入創建鏈接

if(islet($_POST['submit'])) { 
    $name = $_POST['name']; 
    $keywords = $_POST['keywords']; 
    $description = $_POST['description']; 
    if(islet($_GET['user_id'])) { 
     $_SESSION['user_id'] = $_GET['user_id']; 
    } //Then I just have a inset into statement for my database with these 4 variables. 
} 

我有一個網頁表單,由用戶創建一個帖子。我現在想使用戶能夠回到一個專用於該崗位爲他們編輯頁面,添加到等

+2

什麼是「islet」?它是由你定義的函數嗎? – 2014-01-08 03:16:11

+0

你想做一些論壇? @SharanyaDutta,我認爲他的意思是isset() –

+0

並讓你的代碼更好幫助我們閱讀。選擇代碼後,使用快捷鍵ctrl + K;) –

回答

0

這裏是高層次的解決方案:

  1. 你需要創建一個頁面期望post_id作爲查詢字符串的參數。該網頁會這樣來訪問:http://yoursite.com/show-post.php?post_id=136
  2. 在PHP中,檢索POST_ID:$_GET['post_id']
  3. 從那個帖子ID,從數據庫中拉與該id相關的信息。類似SELECT * FROM post WHERE post_id = $_GET['post_id']
  4. 然後使用SQL查詢返回的信息顯示帖子。
  5. 如果要顯示當前用戶的帖子列表,請創建另一頁http://yoursite.com/my-posts.php
  6. 在該頁面上,根據當前用戶標識寫入一個SQL查詢:SELECT * FROM post WHERE user_id = $_SESSION['user_id'](假設在發佈表中有一個user_id,並且用戶已通過身份驗證,並且他的ID已存儲在會話中)。
  7. 這將獲取你的帖子列表,通過循環來獲取他們的細節。

請注意,您應該轉義查詢字符串中傳遞的參數。有很多方法可以做到這一點,所以我不會在這裏進入。

編輯:

這是怎麼生成的鏈接:

<?php foreach ($mysql_result as $row) { ?> 
    <a href="http://yoursite.com/edit-post.php?post_id=<?= $row['post_id'] ?>">link</a> 
<?php } ?> 

然後,在編輯post.php中,您可以通過執行$postId = $_GET['post_id'];得到POST_ID,然後在查詢中使用它獲取有關該特定帖子的所有信息。

+0

當你在url中使用post_id = 136時,我是否應該遵循這一點,或者應該如何去做? – user3167386

+0

我已經在這裏。我只想知道他們是否可以爲我的帖子頁面上返回的每個帖子添加鏈接 – user3167386

+0

這只是一個示例,您可以根據自己的喜好來構建自己的url。你在問如何生成鏈接?或者關於如何構建顯示關於一個帖子的信息的頁面?或者關於如何「編輯」這篇文章? –

0

請確保您的數據庫中有一個唯一的ID列 - 將其稱爲「postid」,並將其設置爲每次新條目都會自動增量。

這樣,您將確保爲插入數據庫的每個條目都有唯一的標識符。

然後您需要檢索數據庫中的項目列表(包括postid),併爲數據庫中的每一行提供一個鏈接以顯示它。

如果在URL中選擇了postid,則顯示該帖子的信息。如果不是,則顯示一個列表:

<? 

$dbh = new PDO('mysql:host=localhost;dbname=databasename;charset=utf8', 'username', 'password'); 

    ///No post id selected, display a list of everything 
    if(!$_GET['postid']) { 

    print "You're listing all the rows in the database<br/>"; 

    $query = $dbh->prepare("SELECT `postid`,`name` FROM `table` ORDER by postid ASC"); 
    $query->execute(); 
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) { 

     print "<a href=\"?post_id=".$row['postid']."\">".$row['name']."</a><br/>"; 
    } 

    } else { //A post ID is selected 

    $postid = $_GET['postid']; 

    Print "Select from the database where postid = ".$postid; 

    $query = $dbh->prepare("SELECT `postid`, `name`, `keywords`, `description` FROM `table` WHERE `postid` = '$postid' LIMIT 1"); 
    $query->execute(); 
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) { 
    $name = $row['name']; 
    $keywords = $row['keywords']; 
    $description = $row['description']; 

     print 'Displaying details for '.$name.': '.$keywords.', '.$description.' - create edit links here... <br/><br/>'; 
    } 


    } //End post id is selected 




?>