【发布时间】:2014-03-09 15:04:53
【问题描述】:
我有一个带有复选框的 HTML 表格,其中将显示来自 MYSQL 数据库的行。 问题是当我标记其中一行以对其执行某些操作时,它给了我一个错误的值,但 MYSQL 代码运行正确并且它更新了正确的行, 我很困惑,无法弄清楚问题是什么,直到一个小时前它还可以正常工作。 我已经使用 echo 函数来查看值的结果,每次它显示 $i 和地址为零的数组为零,但是 MYSQL UPDATE 代码获取正确的值并更新正确的行。
HTML 表格:
<?php
$connection = mysql_connect('localhost', '', '');
$db = mysql_select_db('table', $connection);
mysql_query("SET CHARACTER SET utf8;");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");
/* Inbox section */
$query = mysql_query("SELECT * FROM article WHERE editor='' && status='Under Review' ", $connection);
$string = '';
if (mysql_num_rows($query)){
$_SESSION["count"]=mysql_num_rows($query);
?>
<form method="POST" action="">
<table cellspacing='0' width="800" border='1'>
<tr>
<th>Title</th>
<th>Firstname</th>
<th>Lirstname</th>
<th>Article Title</th>
<th>Article File</th>
<th>Reviewer Email Address</th>
<th>Mark</th>
</tr>
<?php while($row = mysql_fetch_assoc($query)){ ?>
<tr>
<td align='center'><input type='text' name='title[]' id='title' value= "<? echo $row['title']; ?>" ></td>
<td align='center'><input type='text' name='fname[]' id='fname' value= "<? echo $row['fname']; ?>" ></td>
<td align='center'><input type='text' name='lname[]' id='lname' value= "<? echo $row['lname']; ?>" ></td>
<td align='center'><input type='text' name='mastitle[]' id='mastitle' value= "<? echo $row['mstitle']; ?>"></td>
<td align='center'><input type='text' name='file[]' id='file' value="<? echo $row['msfile']; ?> "></td>
<td align='center'><input type='text' name='editoremail[]' id='editoremail' ></td>
<td align="center"><inputtype="checkbox" name="checkbox[]" id="checkbox" value="<? echo $row['id']; ?>" /></td>
</tr>
<?php } ?>
</table>
<div class='cleaner h10'></div>
<input type='submit' name='send' id='send' value='Send'>
</form>
php 代码:
<?php
// Check if button name "Submit" is active, do this
if(isset($_POST['send']) && $_POST['send'] == 'Send')
{
for($i=0;$i<=$_SESSION["count"];$i++)
{
if(isset($_REQUEST['checkbox'][$i]))
{
$set_id = $_REQUEST['checkbox'][$i];
$sql_new=mysql_query(" UPDATE `article` SET `editor`='SENT' WHERE `id`='$set_id' ", $connection);
echo $i;
echo "<br>" . $article=$_REQUEST['file'][$i];
echo "<br>" . $TOmail=$_REQUEST['editoremail'][$i];
echo "<br>" . $manutitle=$_REQUEST['mastitle'][$i];
}
}
}
?>
【问题讨论】:
-
您的复选框和输入字段未在 php 代码中正确映射。复选框[1] 并不总是指代倾斜[1]、fname[1]...等。使用复选框名称,如 name="checkbox[ echo $loop_counter; ?>]" 其中 $loop_counter 的值为 0, 1, 2...
-
如果我这样做,我应该如何检查哪一个是我选择的那个,我应该在 mysql 查询代码中放入 { WHERE
id='$set_id'} 什么? -
你只需要改变你这行代码 $set_id = $_REQUEST['checkbox'][$i];如果你告诉我 $_SESSION["count"] 的业务逻辑,我可以这样做。
-
$_SESSION["count"] 用于计算可用行数,我已将其添加到代码顶部。
-
@Fred-ii- SESSION_START 在我的页面顶部,我没有在这里显示。
标签: php html mysql variables checkbox