我有一个数据库表如下:
使用下面的代码,我会显示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; adios&#39;旁边的提交按钮单击后,将显示数字4。
if(isset($_POST['testing'])) {
echo $replyid;
}
我的问题是只显示表格第一行的ID
。如果用户点击&#39; bonjour&#39;旁边的提交按钮,则数字1将显示(而不是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; ?>