From f84915fbde3aeaad125bb48821bbb5f70a68224b Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Fri, 22 Mar 2013 20:15:39 +0000
Subject: [PATCH] Poprawka błędnego zapytania przy wyszukiwaniu książek z MATCH ... AGAINST ...

---
 includes/ksiazki.php |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/includes/ksiazki.php b/includes/ksiazki.php
index 051fb28..705c3ac 100644
--- a/includes/ksiazki.php
+++ b/includes/ksiazki.php
@@ -13,10 +13,6 @@
 	}
 	
 	static function cache_add($kod, &$dane) {
-		if($dane['od2']) {
-			$dane['od'] = $dane['od2'];
-			unset($dane['od2']);
-		}
 		self::$cache[(int)$kod] = $dane;
 	}
 	
@@ -37,7 +33,7 @@
 	}
 	
 	static function cache_update($kod) {
-		$dane = db2::escape_data(sql::fetchone(sql::query('SELECT *, (SELECT MAX(`od`) FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id`) as `od2`, (SELECT `do` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `do`, (SELECT `kto` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `kto` FROM `ksiazki` WHERE `id`=\''.sql::escape($kod).'\'')));
+		$dane = db2::escape_data(sql::fetchone(sql::query('SELECT `ksiazki`.*, `pozycz`.`od`, `pozycz`.`kto` FROM `ksiazki` LEFT OUTER JOIN `pozycz` ON `pozycz`.`id`=`ksiazki`.`id` WHERE `ksiazki`.`id`='.sql::escape($kod))));
 		self::cache_add($kod, $dane);
 	}
 }
@@ -233,25 +229,25 @@
 		else
 		{
 			if($dane['do']) {
-				$num = db2::num('pozycz', 'id', array('do' => NULL));
-				if($num==0) {
+				$num = db2::num('pozycz', 'id');
+				if($num == 0) {
 					$ret = array();
 				}
 				else
 				{
-					$ret = db2::get(array('pozycz', array('J', 'ksiazki', 'USING', 'id')), '*', array('do' => NULL), $order, $start, $limit);
+					$ret = db2::get(array('pozycz', array('J', 'ksiazki', 'USING', 'id')), '*', NULL, $order, $start, $limit);
 				}
 			}
 			else
 			{
 				$num = db2::num('ksiazki', 'id', $where);
-				if($num==0) {
+				if($num == 0) {
 					$ret = array();
 				}
 				else
 				{
 					$where = db2::__combine_where($where, TRUE);
-					$ret = db2::escape_data(sql::fetch(sql::query('SELECT *, (SELECT MAX(`od`) FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id`) as `od2`, (SELECT `do` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `do`, (SELECT `kto` FROM `pozycz` WHERE `pozycz`.`id`=`ksiazki`.`id` AND `od`=`od2`) as `kto`'.(db2::revelance() ? ', '.db2::$revelance : '').' FROM `ksiazki`'.$where.db2::__combine_order($order, TRUE).db2::__combine_limit($start, $limit))));
+					$ret = db2::escape_data(sql::fetch(sql::query('SELECT `ksiazki`.*, `pozycz`.`od`, `pozycz`.`kto`'.(db2::revelance() ? ', '.db2::$revelance : '').' FROM `ksiazki` LEFT OUTER JOIN `pozycz` ON `pozycz`.`id`=`ksiazki`.`id` '.$where.db2::__combine_order($order, TRUE).db2::__combine_limit($start, $limit))));
 				}
 			}
 			

--
Gitblit v1.9.1