- diễn đàn El
Khách
[eluser]developer10[/eluser]
Về cơ bản, tôi khá thất vọng vì thực tế là mỗi khi tôi phải mã hóa cứng phân trang của mình bất cứ khi nào [và điều đó hầu như luôn luôn xảy ra] tôi muốn sử dụng một số bộ lọc [danh mục, chữ cái bắt đầu, v.v.] trong kết quả của mình trước khi kết quả cuối cùng được trình bày
Vấn đề chính ở đây là [IMHO] không có cách nào dễ dàng [nhưng hay] để lấy cả hai số lượng bản ghi [mà $config['total_rows'] sẽ sử dụng] của tập kết quả đó [khi áp dụng bộ lọc] và có số lượng bản ghi hạn chế
Vì vậy, trong một thời gian dài, tôi đã phải vật lộn để tìm ra một cách có thể chấp nhận được để sử dụng mọi lúc
Đây là như xa như tôi đã nhận được
Mô hình của tôi
Mã số
function loadArtists[$type, $letter, $uriOffset, $limit]
{
$query = "SELECT * FROM _tbl_artists WHERE ";
if[$type]
$query .= "_artist_category = $type AND ";
if[$letter]
$query .= "_ARTIST_NAME LIKE '$letter%' AND ";
$query .= " id > 0 ORDER BY _ARTIST_NAME ASC ";
if [$uriOffset]
$limited = $query . " LIMIT $uriOffset, $limit";
else
$limited = $query;
$noLimit = $this->db->query[$query];
$withLimit = $this->db->query[$limited];
$numRows = $noLimit->num_rows[];
$resultStack = array[];
$resultStack = array[$numRows];
if[$withLimit->num_rows[] > 0]
{
$result = $withLimit->result[];
}
array_push[$resultStack, $result];
return $resultStack; //$resultStack;
}
Bây giờ, khi tôi gửi tập kết quả này đến chế độ xem của mình [trước đó, trong bộ điều khiển của tôi, tôi lấy ra số lượng bản ghi cần thiết cho $config['total_rows ']], tôi không thể tìm ra cách lấy một phần dữ liệu tôi cần
Đây là đầu ra của tập kết quả trên
Mã số
Array
[
[0] => 148
[1] => Array
[
[0] => stdClass Object
[
[id] => 347
[_ARTIST_NAME] => EDIN CARIC
[_ARTIST_SEO_NAME] => edin-caric
[_artist_category] => 0
[_ID_ORIGINAL] => 3325
]
[1] => stdClass Object
[
[id] => 348
[_ARTIST_NAME] => EDIN DENI OMEROVIC
[_ARTIST_SEO_NAME] => edin-deni-omerovic
[_artist_category] => 0
[_ID_ORIGINAL] => 3326
]
[2] => stdClass Object
[
[id] => 349
[_ARTIST_NAME] => EDIN PASIC
[_ARTIST_SEO_NAME] => edin-pasic
[_artist_category] => 0
[_ID_ORIGINAL] => 3328
]
[3] => stdClass Object
[
[id] => 3069
[_ARTIST_NAME] => EDIN UZUN EDY
[_ARTIST_SEO_NAME] => edin-uzun-edy
[_artist_category] => 0
[_ID_ORIGINAL] => 31693
]
[4] => stdClass Object
[
[id] => 350
[_ARTIST_NAME] => EDIS I HARIS
[_ARTIST_SEO_NAME] => edis-i-haris
[_artist_category] => 0
[_ID_ORIGINAL] => 3330
]
[5] => stdClass Object
[
[id] => 351
[_ARTIST_NAME] => EDISA
[_ARTIST_SEO_NAME] => edisa
[_artist_category] => 0
[_ID_ORIGINAL] => 3340
]
]
]
Tôi hoàn toàn không quen thuộc với PHP stdClass và tôi đã thử một số tùy chọn để chuyển đổi nó thành mảng nhưng không có kết quả
OK, vậy thứ tôi cần từ đối tượng là _ARTIST_NAME hoặc dữ liệu khác từ cấp độ đó
Mọi người có góp ý gì thì post lên
- diễn đàn El
Khách
[eluser]developer10[/eluser]
[quote author="adityamenon" date="1309132737"]Chà, tôi chưa bao giờ gặp phải trường hợp nào như thế này, nhưng điều gì xảy ra khi bạn làm điều này?
Mã số
//$topLevelArray is the main Array[] you posted as output
$object = $topLevelArray[1][0]; //you get those keys by using a foreach loop
$artistName = $object->_ARTIST_NAME;
Tôi biết bạn có thể đã thử điều đó, nhưng tôi chỉ tò mò về lỗi bạn gặp phải. [/trích dẫn]
Vâng, đây là lỗi
Mã số
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: artists/artistsView.php
Line Number: 26
CHỈNH SỬA. Tôi đã bỏ lỡ điều gì đó khi áp dụng mã của bạn, nhưng khi thực hiện đúng, điều này có vẻ hiệu quả
Giờ đây, thật dễ dàng để sử dụng số lượng bản ghi được mang theo cùng với tập kết quả
để hiển thị số lượng bản ghi đã xem
Cảm ơn sự giúp đỡ của bạn
- diễn đàn El
Khách
[eluser]developer10[/eluser]
[quote author="adityamenon" date="1309386230"]Chúc mừng. Nhân tiện, hôm nay tôi đã tìm thấy một cách khác trên StackOverflow
Mã số
//put your object in place of $object and you might it in array form in $array...
$array = json_decode[json_encode[$object], true];
...you might want to check that out too
Trên thực tế, tôi đã làm cho điều này phức tạp tất cả bởi lỗi của tôi
Mã đơn giản này làm những gì tôi cần
Mã số
<?php
$rSetArtists = $rSetArtists[1];
foreach [$rSetArtists as $key => $value]:
echo $value->_ARTIST_NAME . '
';
endforeach;
echo $renderPaginationLinks;
?>
Khi bắt đầu, việc giảm mảng đa chiều đó được thực hiện để phần còn lại được coi như bất kỳ tập kết quả mảng nào khác
Dù sao cũng cảm ơn, dòng mã JSON đó có thể hữu ích cho tôi trong tương lai