[aur-dev] [RFC] aurjson: add result count to JSON result

Dave Reisner d at falconindy.com
Tue Oct 25 18:39:52 EDT 2011


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.

 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