仅显示表格中的第一个ID

时间:2016-06-07 17:46:27

标签: php pdo

我有一个数据库表如下:

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>
     ';
  }
}

当用户点击提交按钮时,下面的代码应显示与ID列对应的text。例如:

  • 如果“&#39;你好”旁边的提交按钮单击后,应显示数字2。
  • 如果&#39; adios&#39;旁边的提交按钮单击后,将显示数字4。

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

我的问题是只显示表格第一行的ID。如果用户点击&#39; bonjour&#39;旁边的提交按钮,则数字1将显示(而不是3!)

3 个答案:

答案 0 :(得分:1)

您必须使用您的值添加隐藏字段:

UID SEARCH

然后从表单

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

答案 1 :(得分: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'];
}

答案 2 :(得分: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; ?>