我试图在这里更新多行。但是我没有指向该行的正确ID。
<?php
$table = 'DynamicPage';
$query = mysql_query(Query::SelectAllFrom($table));
// Count table rows
$count = mysql_num_rows($query);
while ($row = mysql_fetch_array($query)) {
$id[] = $row['ID'];
echo '
<h3>Column name: </h3><input type="text" name="name" maxlength="30" value="' . $row['Name'] . '" />
<h3>Tekst: </h3><textarea type="text" name="fulltext[]" maxlength="2000">' . $row['FullText'] . '</textarea>';
}
echo '<input name="Submit" type="submit" value="Submit" />
</form>';
// Check if button name "Submit" is active, do this
if (isset($_POST['Submit'])) {
for ($i = 0; $i < $count; $i++) {
$queryUP = mysql_query("UPDATE $table SET Name='" . $_POST['name'] . "' WHERE id='??????????????'");
$result = mysql_query($queryUP);
}
if ($result) {
header("location:index.php");
}
}
?>
到目前为止,我可以从最后一个<h3>Column name: </h3><input type="text" name="name"...
更新第一行(如果id ='1')我知道我没有以正确的方式传递ID,但我不得不考虑语法。如果有人有想法,请告诉我:)
谢谢
答案 0 :(得分:0)
在$_POST['Submit']
isset
测试后尝试此操作:
for($i=0;$i<sizeof($id);$i++) {
$queryUP = mysql_query("UPDATE $table SET Name='".$_POST['name']."' WHERE id = " . $id[$i]);
$result = mysql_query($queryUP);
}
答案 1 :(得分:0)
input type="text" ids="id[]" maxlength="30" value="'.$row['id'].'" //then submit part for($i=0; $i<count($_POST['id'];$i++) { $queryUP = mysql_query("UPDATE $table SET Name='".$_POST['name']."' WHERE id='$_POST['id'][$i]'"); $result = mysql_query($queryUP); }
答案 2 :(得分:0)
你可以连接$ row ['ID']和$ row ['Name']来创建一个你以后可以解析的名字
<h3>Column name: </h3><input type="text" name="name" maxlength="30"
value="' . $row['ID'] . '_' . $row['Name'] . '" />
然后你可以使用类似的东西:
list($name, $id) = explode($_POST['name'], '_');
**还要注意,您在SQL语句中直接使用用户输入存在安全风险
答案 3 :(得分:0)
也许你应该添加一个带ID的隐藏输入字段:
HTML部分
<input type="hidden" name="id[]" value="'.$row['ID'].'" />
<h3>Column name: </h3><input type="text" name="name[]" maxlength="30" value="'.$row['Name'].'" />
<h3>Tekst: </h3><textarea name="fulltext[]" maxlength="2000">'.$row['FullText'].'</textarea>';
PHP
for($i=0; $i<count($_POST['ID']); ++$i){
//query goes here
}
SQL QUERY
UPDATE $table SET Name='{$_POST['name'][$i]}', Tekst='{$_POST['fulltext'][$i]}' WHERE id='{$_POST['id'][$i]}'
这是我的头脑,没有经过测试,但应该给你一个想法。 当然,要逃避所有输入字段。