2016-03-20 41 views
0

我一直在處理我自己的PHP項目。我遇到了障礙。我正在嘗試檢索數據庫的結果併爲每個結果集打印出一個表單。PHP從大型SQL結果集中檢索變量

然後我想用一個特定的結果交互或者是刪除它或將它傳遞給函數等。

繼承人是我當前的代碼:

<?php 
       while($row = mysqli_fetch_array($result)){ 
       echo '<div id="post">'; ?> 
       <form action="" method="post"> 
      <?php 
       echo "<font size=4>".$row['post']."<br>"; 
       echo "posted by : ".$row['username']."<br>"; 
       $id = $row['p_id']; ?> 
       <input type="submit" name="choice" value="Y"> 
       <input type="submit" name="choice" value="N"> 
       </form> 
       <br> 
       </div> 
      } 
    <?php 
    if($_POST['choice']=="Y"){ 
    // progress 
    functionA(); 
    } 
    else if($_POST['choice']=="N"){ 
    // delete or remove 
    functionB(); 
    } 
?> 

所以在這裏我的目標是點擊Y取得該特定結果或N以刪除/移除結果。 但是,當前通過單擊任一按鈕,所有結果都將被刪除或進度。我知道這個ID應該用來區分帖子,但我似乎無法讓它工作。一旦按下按鈕,它將所有結果傳遞給任一功能。

+1

我看到你結束你的PHP代碼'>'那麼你有PHP代碼,但沒有開口PHP標籤? '<?php'是你的實際代碼嗎? – CodeGodie

+0

@CodeGodie沒有抱歉,這只是代碼的一小部分。我已編輯上述有更好的結構 – DetectiveClarke

回答

1

首先,我想你想知道刪除記錄。因此,輸入添加到您的形式:

<input type="hidden" name="id" value="<?php echo $row['p_id']; ?>"> 

然後,在你的腳本,請致電:

if($_POST['choice'] == "Y") 
{ 
    // progress 
    functionA($_POST['id']); 
} 
elseif($_POST['choice']=="N") 
{ 
    // delete or remove 
    functionB($_POST['id']); 
} 

其他問題:你如何使用您的數據庫連接inside the functions?假設你的mysqli連接被命名爲$conn,調用函數(一個或多個)以這樣的方式

functionA($_POST['id'], $conn); 

旁註:首先過程$_POST值,然後檢索 DB記錄並打印出來。請注意0​​。


+0

謝謝你的回答。爲了使其工作,我已經放棄了我的代碼。感謝您的幫助 – DetectiveClarke

0

使用兩個不同的<input type="radio"> s爲每個項目與值中的id,並讓用戶選擇要刪除和哪些處理。

因此,對於id爲1項目輸出的HTML看起來像:

<input type="radio" name="items[1]" value="delete"><input type="radio" name="items[1]" value="process">

name迫使項目去_POST與ID的數組作爲鍵和選擇的動作爲自己值。

HTML示例:https://jsfiddle.net/gu1gkwod/

+0

非常感謝你的幫助,你們都救了我的時間分配。 – DetectiveClarke

+0

不客氣。在上面的代碼中,有一個'}',它在PHP標籤btw之外:) – Philip