[aur-dev] [RFC] aurjson: add result count to JSON result
Lukas Fleischer
archlinux at cryptocrack.de
Wed Nov 2 16:17:47 EDT 2011
On Tue, Oct 25, 2011 at 06:39:52PM -0400, Dave Reisner wrote:
> We already ask for the result count, but only use it as a basis for testing
> query success or failure. Add the value to the JSON reply.
>
> Signed-off-by: Dave Reisner <dreisner at archlinux.org>
> ---
> I call this an RFC because:
>
> a) I don't have a test environment setup
> b) I don't know PHP
>
> ...but I really like the idea of knowing ahead of time how many results you're
> about to receive.
Just tested it, seems to work! Looks fine to me, also :)
Is there any use case for this yet? Just out of curiosity...
>
> web/lib/aurjson.class.php | 11 ++++++-----
> 1 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
> index 234a3c4..23eb854 100644
> --- a/web/lib/aurjson.class.php
> +++ b/web/lib/aurjson.class.php
> @@ -103,7 +103,7 @@ class AurJSON {
> private function json_error($msg) {
> // set content type header to app/json
> header('content-type: application/json');
> - return $this->json_results('error', $msg);
> + return $this->json_results('error', 0, $msg);
> }
>
> /**
> @@ -112,8 +112,8 @@ class AurJSON {
> * @param $data The result data to return
> * @return mixed A json formatted result response.
> **/
> - private function json_results($type, $data) {
> - return json_encode( array('type' => $type, 'results' => $data) );
> + private function json_results($type, $count, $data) {
> + return json_encode( array('type' => $type, 'resultcount' => $count, 'results' => $data) );
> }
>
> private function process_query($type, $where_condition) {
> @@ -124,7 +124,8 @@ class AurJSON {
> "WHERE ${where_condition}";
> $result = db_query($query, $this->dbh);
>
> - if ( $result && (mysql_num_rows($result) > 0) ) {
> + $resultcount = mysql_num_rows($result);
> + if ( $result && $resultcount > 0 ) {
> $search_data = array();
> while ( $row = mysql_fetch_assoc($result) ) {
> $name = $row['Name'];
> @@ -148,7 +149,7 @@ class AurJSON {
> }
>
> mysql_free_result($result);
> - return $this->json_results($type, $search_data);
> + return $this->json_results($type, $resultcount, $search_data);
> }
> else {
> return $this->json_error('No results found');
> --
> 1.7.7.1
More information about the aur-dev
mailing list