php - 如何获取行数据并使用逗号将其转换为数组?

标签 php mysql sql arrays database

我正在从列中获取数据并希望将其存储在数组中,然后我想从另一个数组中减去该值,但它只是减去数组的第一个值。

这是我的代码:

<?php
    include 'include/header.php';
    include 'include/connect.php';

    // fetch student which are already in database of event
    $district = ($_GET['dis']);
    @$admdistrict = $_SESSION['district']; 

    //echo $district;

    $ret_ = array();

    $query="SELECT * FROM student_info where district = '".$admdistrict."' AND user_status = 'approved' ;
    $resultt = mysql_query($query) or die(mysql_error());

    if (mysql_num_rows($result) > 0) {
        // output data of each row
        while($row = mysql_fetch_array($result)) {
            echo $row['id'];
            $ret_[] = implode(',',$row['id']);
        }
    }

    print_r($ret_);             

只有这个变量 $ret_ 给出第一个值,否则下面的所有变量和函数都可以正常工作。我的学生信息表就像

id  ! name       ! District
4   ! Rahul      ! Karnal
5   ! Sonu       ! Panipat
6   ! Rohit      ! Jind

这个 $ret 变量只给出 4 作为输出。但我希望 (4,5,6) 必须以逗号分隔,以便我可以从下面的 std_fulllist_array 变量中减去它

            $query="SELECT * FROM events where id='$district'";
                                $showdata=mysql_query($query) or die(mysql_error());
                                $user=mysql_fetch_array($showdata);

            if(isset($_POST['submit']))
                //print_r ($_POST);
             {
                  @$std_list=implode(',',$_POST['std_list']);
                 $std_fulllist_array = explode(',', $user['std_list']);
            $std_new_array = explode(',', @$std_list);

            $std_delete_array = explode(',', $delete['id']);

                $values = array_diff($std_fulllist_array, $ret_);   
            $values = array_merge($values, $std_new_array);

            // Only keep unique values
            $values = array_unique($values);

            // Sort (maybe?)
            sort($values);

            // Convert to string
            $values = implode(',', $values);
            echo $values;
            // string(15) "1,2,3,4,5,7,8,9"
            var_dump($values);


                    if(empty($std_list))
                    {
                        $error = 1;
                        $get_value = "Please select you event students.";
                    }

                    else
                    {

                    //$query = mysql_query("INSERT INTO events (std_list) VALUES('".$std_list."')") or die(mysql_error());
                    $query = mysql_query("UPDATE events SET std_list= '$values' WHERE id='".$district."' ") or die(mysql_error());
                    //echo "$msg";
                    echo "Students list submitted successfully";
                    }   
            }

             ?>

最佳答案

我怀疑你想要group_concat()。你的代码有点难以理解,但我的猜测是:

SELECT GROUP_CONCAT(id)
FROM student_info 
WHERE district = '".$admdistrict."' AND user_status = 'approved' ;

关于php - 如何获取行数据并使用逗号将其转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44601739/

相关文章:

mysql - mysql 中的外键问题(错误 1005)

mysql - 三个小表的SQL查询

php - mysql 进入表交替 <td>

php - 如何一键保存在php/mysql中插入数据?

javascript - 使用 codeigniter 和 AJAX 检查数据库 SQL 中是否存在电子邮件

mysql - 由于学生和科目大小不固定,如何在将学生分数插入 tran 表时减少值的冗余?

c# - 在 ASP.NET 4.5 中将 LINQ 与 MySql 结合使用

java - INSERT INTO 在 Ucanaccess 中给出错误

php - 向 pgSQL 表添加权限问题

php - 下拉 Bootstrap 菜单未在网页上填充