2016-06-07 33 views
0

我有作爲跟着一個數據庫表:只有第一ID

enter image description here

使用下面的代碼,我顯示在text列中的所有行:

$stmt = $con->query("SELECT * FROM test"); 
if($stmt->rowCount() > 0) { 
    $replyid = $row['ID']; 
    while($row = $stmt->fetch()) { 
    echo' 
    '.$row['text'].' 
    <form method="post"> 
    <input name="testing" type="submit"> 
    </form> 
    '; 
    } 
} 

當用戶點擊提交按鈕,下面的代碼應該顯示對應於text列的ID。例如:

  • 如果單擊「hello」旁邊的提交按鈕,則會顯示數字2。
  • 如果單擊「adios」旁邊的提交按鈕,應顯示數字4。

    if(isset($_POST['testing'])) { 
        echo $replyid; 
    } 
    

我的問題是,只有在表中的第一行ID被顯示。如果用戶點擊提交按鈕旁邊的「卓悅」,1號將顯示

+1

你知道你沒有在表單中使用id嗎? –

回答

1

您必須添加隱藏字段,以形成自己的價值(而不是3!):

echo' 
    '.$row['text'].' 
    <form method="post"> 
    <input name="replyid" type="hidden" value="'.$row['ID'].'"> 
    <input name="testing" type="submit"> 
    </form> 
    '; 

,然後顯示該值從形式

if(isset($_POST['testing'])) { 
    echo $_POST['replyid']; 
} 
+0

感謝您的迴應。顯示'ID'作爲提交按鈕的值,這不是我想要做的。當用戶點擊提交按鈕時,我想要顯示「ID」。 –

+0

我已更新我的答案 – nospor

+0

非常感謝!:) –

0

嘗試這樣,但我其實不太確定這是你想要的。

$stmt = $con->query("SELECT * FROM test"); 
if($stmt->rowCount() > 0) { 
    while($row = $stmt->fetch()) { 
    echo' 
    '.$row['text'].' 
    <form method="post"> 
    <input name="testing" type="submit" value="'.$row['ID'].'"> 
    </form> 
    '; 
    } 
} 

和echo命令應該是這樣的

if(isset($_POST['testing'])) { 
    echo $_POST['testing']; 
} 
+0

'$ _POST ['replyid']'在此示例中爲空。應該是$ _POST ['testing'] –

+0

@PootieTang:因爲它是從第一個答案複製的。 –

+0

當你爲提交按鈕設置值時,這個值將顯示爲一個按鈕「文本」,這可能不是一個正確的解決方案。 – nospor

0

首先,我總是建議使用PDO方法,而不是在MySQL/MySQLi

class Connection { 
    public function __construct() { 
     return new PDO('mysql:host=X;dbname=X', 'user', 'pass'); 
    } 
} 

$Con = new Connection; 
$Con->Prepare("SELECT * FROM test"); 
$Con->execute(); 
foreach($Con->FetchAll() as $row) { 
    echo $row['id'] . '\n'; 
} 

的以上代碼部分顯示了基本SQL語句的易用性,爲了將來的通知,您還可以使用PDO bindValue()進行安全查詢。

[...] 
$Con->Prepare("SELECT * FROM test WHERE id = :paramhere"); 
$Con->bindValue(":paramhere", 1); 
[...] 

我希望這有助於,你可以找到更多的PDO和SQL從下面的鏈接:

PDO Manual
SQL Select Where Clause

編輯:除了最佳實踐,您應該使用條件使用HTML的語句。

<?php foreach($Con->FetchAll() as $row): ?> 
    <div class="example"> 
     This is HTML, Your ID is: <?php echo $row['id']; ?> 
    </div> 
<?php endforeach; ?>