如何将一个值插入到不同的行

时间:2013-04-03 10:46:42

标签: php mysql insert

我希望代码将相同的值插入列表中检查的不同行(从数据库中查询列表。)但是它表示
“注意:第5行的\ enrol.php中的数组转换为字符串”,

这是我的section.php

    <table border=1px>
    <th>SELECT</th>
    <th>ID NUMBER</th>
    <th>NAME</th>
    <th>COURSE</th>
    <th>YEAR</th>

    <?php session_start();
    include('connect.php');
    $group=$_REQUEST['idEdit'];
    echo $group;

    $sql="SELECT * FROM login WHERE section IS NULL or section = 0";
    $result=mysql_query($sql) or die(mysql_error() );


        while($arr=mysql_fetch_array($result))
        {
            echo '<tr><td><form action="enrol.php" method="post"><input type="checkbox" name="idnumber[]" value="'.$arr['idnumber'].'"></td>'.
                 '<td>'.$arr['idnumber'].",&nbsp</td>".
                 '<td>'.$arr['lastname'].",".$arr['firstname']."&nbsp</td>".
                 '<td>'.$arr['course']."&nbsp</td>".
                 '<td>'.$arr['year']."&nbsp</td></tr>";}

         $idnumber=$arr['idnumber'];
         ?> 

        <input type="hidden" value="<?php $group ?>" name="group">
        <input type="submit" value="Enrol Student" name="submit">
        </form>
    </table>

这是我的enrol.php

    <?php 
    if(isset($_REQUEST['submit'])){

    $ids = join (', ', $_POST['idnumber']);
    $sql="INSERT INTO login (section) values ('$_POST[group]') WHERE idnumber='$ids'";
    mysql_query($sql);

    $count=mysql_affected_rows();

    if($count==1){
                  echo '<script type="text/javascript">alert("Added Sucessfully")</script>';

    }else{
                echo '<script type="text/javascript">alert("Error!")</script>';

                }
     }
    ?>

我该如何解决这个问题?我一直在努力寻找解决方案,但我似乎无法找到任何解决方案。请帮忙。

5 个答案:

答案 0 :(得分:1)

我认为,您正在获取隐藏字段组的值null。 首先,您在隐藏字段中回显组值。

<input type="hidden" value="<?php echo $group; ?>" name="group">

我希望你的问题能解决。 你明白了我的意思吗?

答案 1 :(得分:0)

使用implode而不是join

$ids = implode(', ', $_POST['idnumber']);

答案 2 :(得分:0)

使用implode

 <?php 
        if(isset($_REQUEST['submit'])){

        $ids = implode(', ', $_POST['idnumber']);
        $sql="INSERT INTO login (section) values ('$_POST[group]') WHERE idnumber='$ids'";
        mysql_query($sql);

        $count=mysql_affected_rows();

        if($count==1){
                      echo '<script type="text/javascript">alert("Added Sucessfully")</script>';

        }else{
                    echo '<script type="text/javascript">alert("Error!")</script>';

                    }
         }
        ?>

答案 3 :(得分:0)

获取帖子值时会出现一些引用问题。试试吧。

$sql="INSERT INTO login (section) values ('".$_POST["group"]."') WHERE idnumber='".$ids."'";

答案 4 :(得分:0)

我得到了答案,感谢@thumber nirmal和所有回答这个问题的人。这是enrol.php的工作代码

    <?php include('connect.php');
    if(isset($_REQUEST['submit'])){

    $ids = implode(', ', $_POST['idnumber']);
    $sql="update login set section='".$_POST['group']."' WHERE idnumber IN ($ids)"; 
    echo $sql; 
    $query = mysql_query($sql) or die(mysql_error());
    mysql_query($sql);

    $count=mysql_affected_rows();

    if($count==1){
                  echo '<script type="text/javascript">alert("Added Sucessfully")</script>';

    }else{
                echo '<script type="text/javascript">alert("Error!")</script>';

                }
     }
    ?>