用php

时间:2017-03-24 19:49:47

标签: php mysql mysqli fetch

我正在尝试使用where条件获取数据表单。这是我的代码,它只返回一个值。在此逻辑之前,我使用了foreach函数,但它给了我相同的值。

 public function text1(){

        $valuee = array('20','14','9');
        $length = count($valuee);
            for ($i = 0; $i < $length; $i++) {
            $sql = "SELECT * FROM leads WHERE id = '".$valuee[$i]."'";
            $rs = mysqli_query($this->link, $sql) or die(mysqli_error($this->link));
             return $rs;
            }

    }

这是rsult:

mysqli_result Object ( [current_field] => 0 [field_count] => 6 [lengths] => [num_rows] => 1 [type] => 0 ) 

1 个答案:

答案 0 :(得分:2)

两个主要问题:

首先,你在循环中return $rs;在循环的第一次迭代中,此返回将立即结束您的函数并返回值。您需要在循环内的数组中收集结果,并返回结果数组之后循环。

其次,您正在使用mysqli_query执行查询,但是您没有从它返回的结果对象中获取任何行。

public function text1(){
    $valuee = array('20','14','9');
    $length = count($valuee);
    for ($i = 0; $i < $length; $i++) {
        $sql = "SELECT * FROM leads WHERE id = '".$valuee[$i]."'";
        $rs = mysqli_query($this->link, $sql) or die(mysqli_error($this->link));

        // fetch the row from the result into an array
        $results[] = $rs->fetch_assoc();
    }

    // return the array after it has been filled in the loop
    return $results;
}

还有其他一些问题,但这是现在给你带来麻烦的主要逻辑错误。