我做了一个while循环,它显示了来自数据库的Ploegen
中的所有用户我输出的文本被认为是隐藏但我现在正在测试它。无论如何,它只需要更新1行文本,并且它在页面上显示的id是正确的,但更新总是ID 1,而我更改选项值很多,而valueid(name)总是相同。
我不知道如何按照你的意愿完成这项工作,希望你能解释一下。
我不需要反馈,因为代码不错,只需要帮助解决问题。
<div class="content-module-main">
<?php if(isset($_POST['submit'])){
$idtje = $_POST['valueid'];
$valueid = $_POST['ploeg'];
$idtje = mysqli_real_escape_string($connect, $idtje);
$valueid = mysqli_real_escape_string($connect, $valueid);
//$go = "UPDATE `ploegen` SET `ploeg`='$id' where `id`='$valueid'";
//$go2 = mysqli_query($connect, $go);
echo "<di" . "v class=\"confirmation-box round\">Ploegentest var_dump($valueid); var_dump($idtje);</div>";
}
?>
<table>
<thead>
<tr>
<th>Ploeg</th>
<th>Naam</th>
<th>Tel</th>
<th>Gas of Elektra</th>
<th>Wijzig</th>
</tr>
</thead>
<tbody>
<tr>
<form method="post" action="home_ploegen_b.php">
<?php
$query = "SELECT naam, telefoonnummer, id, ploeg, gasofelektra FROM ploegen ORDER by naam DESC LIMIT 100";
if ($result = mysqli_query($connect, $query)) {
while ($get = mysqli_fetch_assoc($result)) {
echo"<tr><td><center>" . $get['ploeg'] . "</center></td>";
echo"<td>" . $get['naam'] . "</td>";
echo"<td>" . $get['telefoonnummer'] . "</td>";
echo"<td>" . $get['gasofelektra'] . "</td>";
echo"<td><center><input type=\"text\" name=\"valueid\" value=\"" . $get['naam'] . "\" /><select name=\"ploeg\">
<option value=\"1\">Ploeg 1</option>
<option value=\"2\">Ploeg 2</option>
<option value=\"3\">Ploeg 3</option>
<option value=\"4\">Ploeg 4</option>
<option value=\"5\">Ploeg 5</option>
<option value=\"6\">Ploeg 6</option>
<option value=\"7\">Ploeg 7</option>
<option value=\"8\">Ploeg 8</option>
<option value=\"9\">Ploeg 9</option>
<option value=\"10\">Ploeg 10</option>
</select><input type=\"submit\" name=\"submit\" value=\"UPDATE\"></center></td></tr>";
}
}
?> </td></form>
答案 0 :(得分:1)
mysqli_fetch_assoc: - 返回表示结果集中获取的行的字符串的关联数组,其中数组中的每个键表示结果集列之一的名称,如果没有其他行,则返回NULL结果集。
要访问同名的其他列,您需要使用mysqli_fetch_row()访问带有数字索引的结果或添加别名。
答案 1 :(得分:1)
我认为这是你遇到的问题。
<input type=\"text\" name=\"valueid\" value=\"" . $get['naam'] . "\" />
<select name=\"ploeg\".
您的文本字段和所有行中的选择字段名称相同。请为每个字段添加动态名称或使用名称作为数组
参考链接: -
以下是使用数组命名的代码
while ($get = mysqli_fetch_assoc($result)) {
echo"<tr><td><center>" . $get['ploeg'] . "</center></td>";
echo"<td>" . $get['naam'] . "</td>";
echo"<td>" . $get['telefoonnummer'] . "</td>";
echo"<td>" . $get['gasofelektra'] . "</td>";
echo"<td><center><input type=\"text\" name=\"valueid[]\" value=\"" . $get['naam'] . "\" />
<select name=\"ploeg[]\">
<option value=\"1\">Ploeg 1</option>
<option value=\"2\">Ploeg 2</option>
<option value=\"3\">Ploeg 3</option>
<option value=\"4\">Ploeg 4</option>
<option value=\"5\">Ploeg 5</option>
<option value=\"6\">Ploeg 6</option>
<option value=\"7\">Ploeg 7</option>
<option value=\"8\">Ploeg 8</option>
<option value=\"9\">Ploeg 9</option>
<option value=\"10\">Ploeg 10</option>
</select>
<input type=\"submit\" name=\"submit\" value=\"UPDATE\"></center></td></tr>";
}
这个用于动态命名
$row = 1;
while ($get = mysqli_fetch_assoc($result)) {
echo"<tr><td><center>" . $get['ploeg'] . "</center></td>";
echo"<td>" . $get['naam'] . "</td>";
echo"<td>" . $get['telefoonnummer'] . "</td>";
echo"<td>" . $get['gasofelektra'] . "</td>";
echo"<td><center><input type=\"text\" name=\"valueid$row\" value=\"" . $get['naam'] . "\" />
<select name=\"ploeg$row\">
<option value=\"1\">Ploeg 1</option>
<option value=\"2\">Ploeg 2</option>
<option value=\"3\">Ploeg 3</option>
<option value=\"4\">Ploeg 4</option>
<option value=\"5\">Ploeg 5</option>
<option value=\"6\">Ploeg 6</option>
<option value=\"7\">Ploeg 7</option>
<option value=\"8\">Ploeg 8</option>
<option value=\"9\">Ploeg 9</option>
<option value=\"10\">Ploeg 10</option>
</select>
<input type=\"submit\" name=\"submit\" value=\"UPDATE\"></center></td></tr>";
$row ++;
}