базовый класс - шаг вперед
выложил в общий доступ новую версию базового класса. как и предполагалось - основным изменением стало появлением метода setJoin что позволяет теперь с легкостью связывать любое кол-во таблиц с отношениями 1:n.
пример использования:
<?php
require_once("base.class.php");
class News extends Base {
protected $tblname = "tbl1";
}
mysql_connect("localhost", "root", "root");
mysql_select_db("test");
$a = new News();
$a->setFilter('test_id', 'asd');
$a->setFilter('test_id', 'asd23');
$a->setJoin('tbl2', 'tbl1', 'field1', 'field2', array('field3'));
$a->setJoin('tbl4', 'tbl1', 'field4', 'field3', array('field5'));
$a->setJoin('tbl5', 'tbl4', 'field6', 'field7', array('field8'));
$a->setJoin('tbl6', 'tbl5', 'field8', 'field9', array('field8'));
$a->getList(array('myfield'), 1);
?>
Результат в браузере при $doDebug = 1
Error: Table 'test.tbl4' doesn't exist ErrNo: 1146 SQL: SELECT t1.myfield, t2.field3, t3.field5, t4.field8, t5.field8 FROM tbl1 AS t1 LEFT JOIN tbl2 AS t2 ON t2.field1 = t1.field2 LEFT JOIN tbl4 AS t3 ON t3.field4 = t1.field3 LEFT JOIN tbl5 AS t4 ON t4.field6 = t3.field7 LEFT JOIN tbl6 AS t5 ON t5.field8 = t4.field9 WHERE t1.test_id = 'asd' AND t1.test_id = 'asd23' Time: 0.000589 s
скачать последнюю версию класса
Tags: MySQL, PHP, базовый класс, СУБД
Также рекомендую к прочтению:
Март 30th, 2007 at 13:44
Скачал. Добавил в проект. Сачас буду смотреть…
Март 30th, 2007 at 13:47
Это прекрасно! Фасады рулят :-))
Март 30th, 2007 at 14:02
[...] Токарь Алексея (AKA Azazel) появилась новая версия его базового класса (версия [...]
Март 30th, 2007 at 14:15
Блин, дожился. Зашел на блог, скачал класс, добавил в проект, и в репозиторий отправил.

З.Ы.: ждём n:m!
Апрель 22nd, 2007 at 22:56
Приветствую лисапедистов
http://framework.zend.com/manual/en/zend.db.select.html
Апрель 23rd, 2007 at 09:47
приветствуй, только его еще небыло тогда
Апрель 23rd, 2007 at 09:48
да и посмотрел - не то это…