如何将多行数据转换为数组并从另一个数组中减去它?

时间:2017-06-14 05:57:44

标签: php mysql sql arrays arraylist

我从数据库中获取多行,例如

$query = "SELECT * FROM student_info where district = '".$admdistrict."' AND user_status = 'approved' ORDER BY id DESC";
$result = mysql_query($query) or die(mysql_error());
$delete = mysql_fetch_array($resultt);
$std_delete_array = explode(',', $delete['id']);

数据库中id的值在不同的行中类似于4,5,6,但它只给出第一个值4.
我拿的另一个数组是,

$query="SELECT * FROM events where id='$district'";
$showdata=mysql_query($query) or die(mysql_error());
$user=mysql_fetch_array($showdata);
$std_fulllist_array = explode(',', $user['std_list']);

数据库中的值是4,5,6,8。但在单一的coloumn,所以它提供适当的输出。现在我想从$std_delete_array中减去$std_fulllist_array。 我使用的是代码

$values = array_diff($std_fulllist_array, $std_delete_array);

仅减去$std_delete数组的第一个值。

表student_info的

结构是 ID !名称 !区 4个panipat 5 b panipat 6 c panipat

表事件的结构是 ID !区! std_list 1 panipat 4,5,6 2 karnal 4,7,8 3 chandigarh 5,6,7

1 个答案:

答案 0 :(得分:0)

您说数据库中id的值类似于不同行中的4,5,6 这意味着你的表看起来像

id district
-- ---------
4  abc
5  def
6  geh
8  ijk

所以你的第一个查询是获取多个记录。

修改

所以你的查询将是

$ret_ = array();
$query = "SELECT * FROM student_info where district = '".$admdistrict."' AND user_status = 'approved' ORDER BY id DESC";
$result = 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_[] = $row;  
    }
}
print_r($ret_);