从mysql中检索数据并相应地更新它们

时间:2011-02-14 05:49:55

标签: php mysql html

我想从我的MySQL数据库中检索数据并将其显示为表格(我不介意任何样式,但首选作为表格)。然后,数据应显示单选按钮或普通按钮,更新该特定行并将该行中的单个列更改为“活动”(状态为“活动”)。

我已经启动了它,但是我仍然遇到添加单选按钮或按钮的问题。然后我想到将信息显示在表格内的表格中。当用户选择该单选按钮并按提交时,此表单将具有每个单选按钮。应该在MySQL数据库中更新数据。

有人可以指导我吗?我有点困惑。我很困惑,因为我必须添加一个表单,在那个表单中我必须添加一个表,所有这些东西都应该在一个php文件中。

3 个答案:

答案 0 :(得分:0)

在formpost.php页面上,您可以执行类似的操作来处理从上一页收到的列表数组:

<?
$list = $_POST['list'];

foreach ($list as $key => $list_php) 
{
$query1 = "SELECT * FROM `stu_entry` WHERE `stu_entry`.`Student_No` = '$list_php' AND `stu_entry`.`Out_Time` = '0000-00-00 00:00:00'";
$result1 = mysql_query($query1);
$row1=mysql_fetch_array($result1);


//whatever you want to do

}
?>

我忘了在上一篇文章中告诉你一些事情。在表单页面中,假设您有100行,包含100个复选框。手动检查或取消选中所有这些都是令人讨厌的。作为替代方案,您可以在页面末尾附加一个小脚本来处理检查/取消检查过程:

<script>
function checkAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}

function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = false ;
}

function countChecks(form){
var t=0;
var c=form['list[]'];
for(var i=0;i<c.length;i++){
c[i].checked?t++:null;
}
return t;
}

</script>

<input type="button" name="CheckAll" value="Check All"
onClick="checkAll(document.formpost['list[]'])">
<input type="button" name="UnCheckAll" value="Uncheck All"
onClick="uncheckAll(document.formpost['list[]'])">

<i>with selected: </i>

<select name="submit_mult" id="submit_mult">
    <option value="todo1">Action 1 </option>
    <option value="todo2">Action 2 </option>
    </select>
<input type="button" name="go" value="Go" onClick='if(countChecks(this.form)>0) {if(confirm("are you sure you want to \""+document.getElementById("submit_mult").options[document.getElementById("submit_mult").selectedIndex].text+" "+countChecks(this.form)+" items selected"+"\"")) {document.getElementById("referenceToSomeHiddenElement").value=document.getElementById("submit_mult").options[document.getElementById("submit_mult").selectedIndex].value;document.getElementById("formpost").submit();}} else alert("you have not selected any item!!")' >

告诉我你是否需要更多帮助。

答案 1 :(得分:0)

我首先指定一个MySQL命令,反过来给我一个数组。我使用while语句对数组中的每个项执行某些操作。该数组将填充字段名称和字段内容。

$mysql = mysql_query("SELECT * FROM table");
while ($array = mysql_fetch_array($mysql))
{
  $output .= '<form>Row: ' . $array['fieldname'] . ' <input type="button" value="Update" /></form>';
}

这将从表中提取所有行,并为每个结果向变量$ output添加一个表单。我不确定您希望如何更新数据库,因此您必须对其进行调查。您可以使用GET和POST方法。

答案 2 :(得分:-1)

继续尝试这样的事情。告诉我这是否奏效:

<p><b>your page name</b></p>
<form name="formpost" id="formpost" action="formpost.php" method="POST">
<table border="2" cellpadding="5" cellspacing="1" style="border-collapse: collapse" bordercolor="#999999" width="800">
  <tr>
    <td><b>Sno.</b></td>
    <td><b>Field name1</b></td>
    <td><b>Field name2</b></td>
    <td><b>Field name3</b></td>
    <td><b>Field name4</b></td>
    <td><b>Field name5</b></td>
    <td><b>Field name6</b></td>
    <td><b>Field name7</b></td>
  </tr>

  <?
  $sorting="";
  if($orderby!="" && $direction!="")  $sorting=" ORDER BY $orderby $direction";    
  $query = "SELECT * FROM table WHERE something = 'something' $sorting";  
  $result = mysql_query($query);
  ?>
  <tr>
  <?
  $i=0;
  while ($row = mysql_fetch_array($result)) 
  {
  $i++;

  ?>
  <td><input type="checkbox" name="list[<?echo $i?>]" id="list[]" value="<?echo $row['some_primary_field_id']?>"><?echo $i?></td>
  <td><?echo $row['Field1']?></td>
  <td><?echo $row['Field2']?></td>
  <td><?echo $row['Field3']?></td>    
  <td><?echo $row['Field4']?></td>
  <td><?echo $row['Field5']?></td>
  <td><?echo $row['Field6']?></td>
  <td><p align="center">

  <?  
  echo "<input title='button' name='change this row' value='Some Button' type='button' onClick=\"if(confirm('Press OK to change status to confirm')) {document.getElementById('someid').value='".$row['Field1']."';document.getElementById('formpost').submit();}\"/>";
  ?>
  </td>
  </tr>
<input type='hidden' name="hiddenlist[<?echo $i?>]" id="hiddenlist[]" value="<?echo "some boundry condition ".$row['Field2']?>">

<?
} //end of while
?>
</table>
</form>