php函数不是通过所有用户循环,只是第一个用户

时间:2012-08-12 17:46:31

标签: php sql

以下php函数仅适用于一个用户记录,而不是所有想法中的值为“1”的所有用户记录,是什么想法?

function getSummaryEmailInfo() {
    $sql = "
      SELECT u.id, u.master_id, u.email
      FROM user AS u
      WHERE u.weekly_email_fl = 1
    ";
    $query = $this->db->query( $sql );
    $users = $query->result_array();

    foreach ( $users as &$user ) {
      $user_id = ( $user['master_id'] == '0' ) ? $user['id'] : $user['master_id'];

      $sql = "
        SELECT ui.custom_name
        FROM user_item AS ui
        WHERE ui.user_id = '" . $user_id . "'
        AND added_to_list_dt IS NOT NULL
        ORDER BY added_to_list_dt DESC
        ;
      ";
      $query = $this->db->query( $sql );
      $user['s_list'] = $query->result_array();
    }
    return $users;
  }

有多个用户使用weekly_email_f1 = 1.我认为result_array();正在填充,但无法弄清楚,但......

function getUserInfo( $user_id ) {
    $query = $this->db->query( "
      SELECT name AS first_name, email, zip_code, weekly_email_fl
      FROM user
      WHERE id = '" . $user_id . "'
    ;" );
    if ( $query->num_rows() > 0 ) {
      $results = $query->result_array();
      $results = $results[0];
    } else {
      $results = null;
    }
    return $results;
  }

2 个答案:

答案 0 :(得分:1)

while($users = $query->result_array()) {
    /* You can use $users['master_id'] here */
}

答案 1 :(得分:0)

  1. 每周只有一位用户使用weekly_email_f1 = 1
  2. $查询 - > result_array();只返回第一个/最后一个。