0

次のphp関数は、weekly_email_f1列の値が「1」のすべてのユーザーレコードではなく、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;
  }
4

2 に答える 2

1
while($users = $query->result_array()) {
    /* You can use $users['master_id'] here */
}
于 2012-08-12T23:14:29.200 に答える
0
  1. week_email_f1 = 1 のユーザーは 1 人だけです
  2. $query->result_array(); 最初/最後/1 行のみを返します。
于 2012-08-12T17:51:54.960 に答える