базовый класс - шаг вперед

выложил в общий доступ новую версию базового класса. как и предполагалось - основным изменением стало появлением метода 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: , , ,

Также рекомендую к прочтению:

7 Responses to “базовый класс - шаг вперед”

  1. BITCreator Says:

    Скачал. Добавил в проект. Сачас буду смотреть… ;)

  2. drumrock Says:

    Это прекрасно! Фасады рулят :-))

  3. base.class.php « BITCreator blog Says:

    [...] Токарь Алексея (AKA Azazel) появилась новая версия его базового класса (версия [...]

  4. BITCreator Says:

    Блин, дожился. Зашел на блог, скачал класс, добавил в проект, и в репозиторий отправил. ;)
    З.Ы.: ждём n:m! ;)

  5. BeGeMoT Says:

    Приветствую лисапедистов
    http://framework.zend.com/manual/en/zend.db.select.html

  6. Azazel Says:

    приветствуй, только его еще небыло тогда ;)

  7. Azazel Says:

    да и посмотрел - не то это…

Leave a Reply

Введите следующие символы: