codeigniter를 사용하고 있습니다. 내 모델 중 하나에서 UNION을 사용하여 두 테이블의 데이터베이스에서 데이터를 검색하는 함수를 정의했습니다. 검색된 개체 배열을 'date_submitted'속성에서 정렬되도록합니다. 다음 코드를 사용하려고했지만 원하는 결과가 표시되지 않습니다.데이터베이스에서 가져온 객체 배열 정렬
여기가
array (size=7)
0 =>
object(stdClass)[31]
public 'id' => string '1' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'My Painting2' (length=12)
public 'category' => string '1' (length=1)
public 'date_submitted' => string '2014-09-26 23:00:09' (length=19)
1 =>
object(stdClass)[32]
public 'id' => string '2' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'Second artwork' (length=14)
public 'category' => string '2' (length=1)
public 'date_submitted' => string '2014-09-27 01:09:03' (length=19)
2 =>
object(stdClass)[33]
public 'id' => string '3' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'Test Title' (length=10)
public 'category' => string '2' (length=1)
public 'date_submitted' => string '2014-10-12 01:19:34' (length=19)
3 =>
object(stdClass)[34]
public 'id' => string '4' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'Test Title' (length=10)
public 'category' => string '3' (length=1)
public 'date_submitted' => string '2014-10-12 02:54:57' (length=19)
4 =>
object(stdClass)[35]
public 'id' => string '8' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'test' (length=4)
public 'category' => string '3' (length=1)
public 'date_submitted' => string '2014-11-13 16:49:06' (length=19)
5 =>
object(stdClass)[36]
public 'id' => string '9' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'Hello World' (length=11)
public 'category' => string '3' (length=1)
public 'date_submitted' => string '2014-12-06 22:15:46' (length=19)
6 =>
object(stdClass)[37]
public 'id' => string '5' (length=1)
public 'user_id' => string '2' (length=1)
public 'title' => string 'My first blog' (length=13)
public 'category' => string '2' (length=1)
public 'date_submitted' => string '2014-10-12 21:26:13' (length=19)
최초의 6 행은 첫 번째 테이블에서하고 마지막 행은 2 테이블에서입니다 다음과 같은 출력을 제공 내 코드
$this->db->select("*");
$this->db->from("artwork");
$this->db->get();
$query1 = $this->db->last_query();
$this->db->select("*");
$this->db->from("blog");
$this->db->get();
$query2 = $this->db->last_query();
$results = $this->db->query($query1." UNION ".$query2);
function cmp($a, $b)
{
if ($a->date_submitted == $b->date_submitted) {
return 0;
}
return ($a->date_submitted < $b->date_submitted) ? -1 : 1;
}
usort($results->result(), "cmp");
var_dump($results->result());
입니다.
SQL 쿼리에서 왜 주문하지 않습니까? '$ results = $ this-> db-> query ($ query1. "UNION". $ query2. "ORDER BY'date_dubmitted'");' – Tosfera
고마워요. 그게 효과가 있었어. –
내 답변을 실제 답변으로 표시하여 사람들이 이와 같은 문제에 더 얽매여 있다면 더 이상 주석 달기 또는 검색을 중지합니다. :) – Tosfera