【问题标题】:Using input checkboxes with a database将输入复选框与数据库一起使用
【发布时间】:2011-10-23 10:42:04
【问题描述】:

所以我试图通过为他的公会编写一个用于突袭之类的出勤跟踪器来帮助他的朋友。现在我的概念是从用户列中选择*,并为每个用户制作一个复选框,假设该人出现在raid中,它将通过表单传递一个“1”,并且他们的raid出席率将增加1. 在用户页面上,整体出勤率将计算为(raidAtt / raidsTotal)*100(自加入以来)。

我现在的问题是我真的不知道如何使用单个循环传递所有这些信息...

现在我的代码是这样的:

            <form action="raidattend.php" method="post">
            <?php 

                mysql_connect("$database",$username,$password);
                @mysql_select_db($database) or die( "Unable to select database");
                $query="SELECT * FROM attend WHERE UserName = $v_member ORDER BY date desc";
                $result=mysql_query($query);

                $num=mysql_numrows($result);

                mysql_close();
                ?>
            <table>
            <tr>
            <th>Member</th>
            <th>Attended?</th>
            </tr>   
            <?php
                $i=0;
                while ($i < $num) {
                $f1=mysql_result($result,$i,"UserName");
            }
            <tr>
            <td><?php echo $f1; ?></td><td input type="checkbox" checked value="1">

这就是我遇到问题的地方。我不确定如何将每个用户和复选框的结果传递回数据库。一旦我了解了如何做到这一点,它就像递增一样简单,但我很迷茫。

感谢您的帮助!

编辑:澄清一下,我不确定如何分解它以便每个成员都得到更新,我知道我需要使用提交等等。

编辑 2:流浪 }

【问题讨论】:

    标签: php mysql database input checkbox


    【解决方案1】:

    您应该更改您的复选框,使它们都具有相同的名称(即 name="member[]")。这样,当您提交表单时,所有选中的成员都将在 $_POST['member'] 中。然后,只需遍历 $_POST['member'] 并更新您的表。

    <td><?php echo $f1; ?><td> <input type="checkbox" name="member[]" value=<?php echo "'$f1'"; ?> /></td>
    

    这应该会为您提供包含参加者姓名的复选框列表。

    以下是如何进行更新的简要概述:

    1.循环通过 $_POST['member'] 并增加该人参加的数量:

     foreach($_POST['member'] as $member)
     {
        mysql_query("update table_name set attended=(attended+1) where username='$member'");
     }
    

    2.更新每个参加的成员后,对整个表进行更新以增加已发生的袭击总数:

    mssql_query("update table_name set total=(total+1)");
    

    【讨论】:

    • 优秀的答案,就像一个小附录一样,你有一个小的语法错误: ?> /> 关闭 php.ini 中的复选框。除此之外,它工作得很好。万分感谢!对于以后可能会发生这种情况的任何人:我将其修改为: /> 再次感谢!
    • 感谢您指出这一点。很高兴它有帮助。我也对我的帖子进行了更正。
    【解决方案2】:

    在表格上:

    <input type=checkbox name=selected[] value='" . $f1 . "'>
    

    在 raidattend.php 上:

    $selected=$_POST['selected'];
    
    while (list ($key,$val) = @each ($selected)) {
    
        //$val will hold the username
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多