[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