[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: хочется приблизится к структуре MVC
BorisBelyaev
Добрый день Форумчане. В выпадающем списке меню которое находится в форме необходимо вставить несколько полей из БД реализую так:

1. В контроллере

/**  
* The block of reading of the information
* Блок чтения информации
*/


$res = mysqlQuery("SELECT * FROM `". IRB_DBSERVICE ."device_brend`
ORDER BY `id` ASC"
);

$select_brend = '';
$select_name = '';

if(mysql_num_rows($res) > 0)
{
$cont_brend = getTpl('new/select_brend');
$cont_name = getTpl('new/select_name');

while($row = htmlChars(mysql_fetch_assoc($res)))
{
$row['brend'] = $row['brend'];
$row['name'] = $row['name'];
$select_brend .= parseTpl($cont_brend, $row);
$select_name .= parseTpl($cont_name, $row);
}
}




2. Создаю два файла (select_brend.tpl и select_name.tpl)следующего содержания:

1) select_brend.tpl

<option><?php echo $tpl_brend ?></option>




2) select_name.tpl

<option><?php echo $tpl_name ?></option>




3. В форму соответственно:

<form action="" method="post">

<div
class="add_device_text">Тип устройства:</div>
<select
name='form[value1]' size='1' class='add_select'>
<?php
echo $select_name ?>
</select>

<div
class="add_device_text">Бренд:</div>
<select
name='form[value2]' size='1' class='add_select'>
<?php
echo $select_brend ?>
</select>




Все работает но, вопрос в следующем - чувствую что мой метод далеко не оптимален, как оптимизировать? Может можно написать функцию но тогда как вставлять в форму, в общем вопросов больше чем ответов. Раньше просто в форму вставлял запрос к БД теперь хочется приблизится к структуре MVC.



Спустя 7 минут, 12 секунд (18.03.2011 - 10:37) Семён написал(а):
Это не контроллер это точно, скорее помесь модели.

Спустя 17 минут, 38 секунд (18.03.2011 - 10:55) Michael написал(а):

 ! 

М
Давайте своим темам вменяемое название
Michael

Спустя 6 минут, 26 секунд (18.03.2011 - 11:02) BorisBelyaev написал(а):
Цитата (Семён @ 18.03.2011 - 07:37)
Это не контроллер это точно, скорее помесь модели.

Не понял. Объясните поподробнее.
Почему помесь модели, у меня:
1. первый блок находится в отдельном файле /modules/new/read_controller;
2. файлы находятся в /skins/tpl/new/
3. третий блок с формой тоже в /skins/tpl/new/ только в другом файле.

Спустя 2 минуты, 50 секунд (18.03.2011 - 11:04) BorisBelyaev написал(а):
Цитата (Michael @ 18.03.2011 - 07:55)
[MOD]Давайте своим темам вменяемое названиеMichael[/EX]

Назвал так потому, что здесь буду задавать интересующие меня вопросы начального уровня и обозначить как то конкретно не представляется возможным если есть какие нибудь критерии по названиям прошу озвучить.

Спустя 18 секунд (18.03.2011 - 11:05) twin написал(а):
Цитата
2. Создаю два файла (select_brend.tpl и select_name.tpl)следующего содержания:

Вот это лишнее. Нужно просто руками прописать.
	while($row = htmlChars(mysql_fetch_assoc($res)))  
{
$select_brend .= '<option>'. $tpl_brend .'</option>';

Для чего это в файл то? На худой конец класс CSS поставить.

Семён
Цитата
Это не контроллер это точно, скорее помесь модели.
Да хоть горшком назови. Я еще не встречал человека, котороый четко бы мог расписать структуру MVC (внимание!) для PHP.

Спустя 6 минут, 54 секунды (18.03.2011 - 11:12) Michael написал(а):
Цитата (BorisBelyaev @ 18.03.2011 - 10:04)
Цитата (Michael @ 18.03.2011 - 07:55)
Давайте своим темам вменяемое названиеMichael

Назвал так потому, что здесь буду задавать интересующие меня вопросы начального уровня и обозначить как то конкретно не представляется возможным если есть какие нибудь критерии по названиям прошу озвучить.

лучше не надо все скидывать в одну тему.
Смысл такой:
что то интересует конкретное - об этом и спрашиваешь. И не имеешь проблем с тем как тему назвать. Что то следующее интересует - новая тема.
По правилу 2.3.c твоя тема по хорошему подлежит закрытию ...

Спустя 2 минуты, 27 секунд (18.03.2011 - 11:14) Семён написал(а):
Цитата (twin @ 18.03.2011 - 12:05)
Семён
Цитата
Это не контроллер это точно, скорее помесь модели.
Да хоть горшком назови. Я еще не встречал человека, котороый четко бы мог расписать структуру MVC (внимание!) для PHP.

twin
лично для меня в простом объяснении для Бориса - контроллер должен работать с данными пришедшими от пользователя ($_POST, SESSION, REQUEST), делать вызов чего либо из модели и направлять на VIEW (шаблон), но никак не делать выборки, преобразования и т.д. А на счёт не видел, мб просто не слышал или ещё правильнее не хотел слышать и соглашаться с тем, что есть.
Зачем тогда вообще использовать модель?! Называйте тогда свои приложения ModuleView - это как раз подходит к твоей процедурной идеологии, но никак не Model/View/Controller

Спустя 13 минут, 37 секунд (18.03.2011 - 11:28) twin написал(а):
Семён
Цитата
Зачем тогда вообще использовать модель?! Называйте тогда свои приложения ModuleView - это как раз подходит к твоей процедурной идеологии, но никак не Model/View/Controller
А я и написал
Цитата
Я сейчас покажу еще одну структуру, которая очень похожа на упомянутую, но кроме того содержит в себе модульный элемент и на мой взгляд наиболее прозрачна и оптимальна.

И вообще, то, что ты описал - идеология ZEND, а вовсе не единственно правильная трактовка. Пусть они так рассуждают, я в рот им заглядывть не хочу. У меня свое видение. И да, я не хотел
Цитата
соглашаться с тем, что есть.
Потому что есть не только это.

Спустя 5 минут, 29 секунд (18.03.2011 - 11:33) Семён написал(а):
Хочется верить, что ты когда-нибудь сможешь переосмыслить, то во что ты веришь.

Спустя 32 минуты, 38 секунд (18.03.2011 - 12:06) BorisBelyaev написал(а):
Спасибо за Ваши ответы. Особенно twin за конструктивное замечание smile.gif .

Спустя 16 минут, 42 секунды (18.03.2011 - 12:22) twin написал(а):
Семён
Цитата
Хочется верить, что ты когда-нибудь сможешь переосмыслить, то во что ты веришь.

Я верю в то, что совершенно незачем усложнять то, что на самом деле проще пареной репы. Схема эта работает и работает очень неплохо. И разобраться в ней куда проще, чем в тех структурах, которые так настойчиво считаются "правильными".
Я сам на ней построил далеко не один сайт.

Ну а если кому то захочется усложнить себе жизнь, никаких проблем. Пусть изучают и пользуют фреймворки, дискутируют о абсолютной истине, свято верят в идеи "руководящей и направляющей". Им будет уже гораздо проще.

По крайней мере, они хотя бы будут знать, что бывают контроллеры. А какие именно - вопрос десятый.

Спустя 4 часа, 16 минут, 22 секунды (18.03.2011 - 16:39) BorisBelyaev написал(а):
Извиняюсь за глупый вопрос но откуда возьмется переменная $tpl_brend вот в этой конструкции:

	while($row = htmlChars(mysql_fetch_assoc($res)))  
{
$select_brend .= '<option>'. $tpl_brend .'</option>';


Разобрался :) вот рабочий формат выборки

while($row = htmlChars(mysql_fetch_assoc($res)))  
{
$select_brend .= '<option>'. $row['brend'] .'</option>';
$select_name .= '<option>'. $row['name'] .'</option>';
}

Спустя 20 часов, 46 минут, 23 секунды (19.03.2011 - 13:25) BorisBelyaev написал(а):
Возник новый вопрос:
Пытаюсь реализовать выборку из БД по критерию наличия в поле checkbox галочки реализую так:

1. В контроллер:

/**   
* Блок выборки нужных полей из БД при отметке в checkbox
*/

$tpl = getTpl('main/status');
$status = parseTpl($tpl, array());

if($ok)
{
$st = implode("', '", $POST['array1']);
}
else
$st = 'новая';

/**
* Блок чтения информации
*/

include './libs/irb_paginator.php';
$paginator = new IRB_Paginator($GET['num'], IRB_NUM_POSTS);

$res = $paginator -> countQuery("SELECT * FROM `". IRB_DBSERVICE ."base`
WHERE `status` IN ('
$st')
ORDER BY `id` DESC"
);

$page_menu = $paginator -> createMenu();

$rows = '';

if(mysql_num_rows($res) > 0)
{
$cont = getTpl('main/rows');

while($row = htmlChars(mysql_fetch_assoc($res)))
{
$row['date'] = formatDate($row['date'], false);
$rows .= parseTpl($cont, $row);
}
}



2. Файл status.tpl:

<form action="" method="post">
<div
class="">Отобразить в списке:</div>
<div
class="">новая</div>
<input
name="form[array1][]" type="checkbox" value="новая" checked />
<div
class="">в работе</div>
<input
name="form[array1][]" type="checkbox" value="в работе" />
<div
class="">выполнено</div>
<input
name="form[array1][]" type="checkbox" value="выполнено" />
<br />
<input
name="ok" type="submit" class="bt" value="Отобразить"/> <!-- Кнопка отобразить нужные заявки -->
</form>


3. Переменную $status; в шаблон соответствующей страницы:

Эти конструкции работают но криво, в смысле, при начальном отображении страницы все в порядке, а вот дальше начинается "борода". После выставления галочки в поле

<div class="">в работе</div>
<
input name="form[array1][]" type="checkbox" value="в работе" />

нужные поля отображаются, но при формировании страницы галочка снимается ибо стоит условие

else
$st = 'новая';

тоже самое происходит пи формировании нескольких страниц функцией paginator .

Вопрос собственно в следующем - возможно ли сделать так чтобы галочка не снималась при переходе по ссылке сформированной paginator и после нажатия кнопки
<input name="ok" type="submit" class="bt" value="Отобразить"/>
.

Спустя 1 день, 8 часов, 22 минуты, 38 секунд (20.03.2011 - 21:48) BorisBelyaev написал(а):
Подскажите как сделать так чтобы при обновлении страницы или переходе на другую ссылку сгенерированную paginator не снимались галочки в checkbox. Уже по моему все перепробовал и с бубном даже ходил по совету некоторых товарищей на ничего не помогает sad.gif .

Спустя 23 минуты, 29 секунд (20.03.2011 - 22:11) Invis1ble написал(а):
BorisBelyaev
к примеру, записывать значения чекбоксов в сессию, а при запускескрипта проверять, если есть значения в сессии - проставлять их

Спустя 1 час, 32 секунды (20.03.2011 - 23:12) inpost написал(а):
BorisBelyaev
Если передал параметр чекбокса, то чекбокс checked

Спустя 15 часов, 50 минут, 14 секунд (21.03.2011 - 15:02) BorisBelyaev написал(а):
Цитата (inpost @ 20.03.2011 - 20:12)
BorisBelyaev
Если передал параметр чекбокса, то чекбокс checked

Это я понял, пробовал разные варианты но почему то не получается. Если можно поподробнее исходя из поста за 19.03.2011 - 10:25

Спустя 1 день, 6 часов, 28 минут, 19 секунд (22.03.2011 - 21:30) BorisBelyaev написал(а):
На сайте irbis-team.com специально для этих целей есть функция:

/** 
* Return of checkbocses
* Возврат чекбоксов
*/

function returnCheck($id, $return)
{
return ($id == $return)?'checked="checked"':NULL;
}


Разъясните как она работает, точнее как сделать отображение галочек после перехода на другую страницу или возврата на базовую

такая форма работает при нажатии на кнопку

<form action="" method="post" id="sort">
<
div class="sort_text">новая</div>
<
input name="form[value1]" type="checkbox" value="новая" class="sort_checkbox"
<?php echo returnCheck('новая', $POST['value1']); ?>>

<
div class="sort_text">в работе</div>
<
input name="form[value2]" type="checkbox" value="в работе" class="sort_checkbox"
<?php echo returnCheck('в работе', $POST['value2']); ?>>

<
div class="sort_text">выполнено</div>
<
input name="form[value3]" type="checkbox" value="выполнено" class="sort_checkbox"
<?php echo returnCheck('выполнено', $POST['value3']); ?>>

<
input name="ok" type="submit" class="bt" value="Отобразить" /> <!-- Кнопка отобразить нужные заявки -->

</
form>


,а вот как сделать чтобы галочки отображались при первом или последующих переходах на эту страницу без нажатия кнопки?

Спустя 7 минут, 36 секунд (22.03.2011 - 21:38) Invis1ble написал(а):
оправлять отмеченные чекбоксы аяксом php-скрипту, который будет записывать данные, к примеру, в сессию

Спустя 11 часов, 38 минут, 25 секунд (23.03.2011 - 09:16) BorisBelyaev написал(а):
Цитата (Invis1ble @ 22.03.2011 - 18:38)
оправлять отмеченные чекбоксы аяксом php-скрипту, который будет записывать данные, к примеру, в сессию

Можно поподробнее, если это не сложно, ибо в аяксе не разбираюсь, а вообще я думал эту задачу можно решить средствами PHP.

Спустя 1 час, 40 минут, 50 секунд (23.03.2011 - 10:57) Invis1ble написал(а):
ну так разберись. Читай про аякс.

Спустя 1 месяц, 18 дней, 13 минут, 43 секунды (11.05.2011 - 10:11) BorisBelyaev написал(а):
Добрый день, пытаюсь разобраться с пагинатором вот такой запрос почему-то не проходит:


$res = $paginator -> calcQuery("SELECT `b`.`id`,`b`.`date`,`b`.`status`,`b`.`device`,`b`.`brend`,
`b`.`model`,`b`.`age`,`b`.`disrepair`,`b`.`fio`,
`b`.`address`,`b`.`phone`,`b`.`serial`,`b`.`performer`,
`b`.`note`,`b`.`document`,`b`.`repair_parts`,`b`.`salesman`
FROM `"
. SRV_DBPREFIX ."base` `b`
WHERE `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
LIKE '%"
. escapeString(addcslashes ($POST['value4'], '_%\\')) ."%'
ORDER BY `b`.`id` DESC
"
);

подскажите люди добрые.

Спустя 12 минут, 46 секунд (11.05.2011 - 10:24) Invis1ble написал(а):
Что значит "не проходит"?
А вообще меня смущает в твоем коде индексы кириллицей. Имхо, причина в этом.

Спустя 14 минут, 22 секунды (11.05.2011 - 10:38) inpost написал(а):
Может перед LIKE дописать: AND b.`status` LIKE ? Разве он сразу будет привязан к предыдущему IN ?

Спустя 6 минут, 12 секунд (11.05.2011 - 10:44) BorisBelyaev написал(а):
Цитата (inpost @ 11.05.2011 - 07:38)
Может перед LIKE дописать: AND b.`status` LIKE ? Разве он сразу будет привязан к предыдущему IN ?

Да действительно, теперь ошибку не выдает, но запрос возвращается пустой, надо дальше разбираться.

Спустя 1 минута, 43 секунды (11.05.2011 - 10:46) BorisBelyaev написал(а):
Цитата (Invis1ble @ 11.05.2011 - 07:24)
А вообще меня смущает в твоем коде индексы кириллицей. Имхо, причина в этом.

Нет, думаю дело не в этом, у меня есть еще один запрос выше такого же типа, там все в порядке + кодировки согласованы.

Спустя 3 часа, 52 минуты, 30 секунд (11.05.2011 - 14:39) BorisBelyaev написал(а):
Вот такой запрос работает, вроде, корректно:

$res = $paginator -> calcQuery("SELECT `b`.`id`,`b`.`date`,`b`.`status`,`b`.`device`,`b`.`brend`,
`b`.`model`,`b`.`age`,`b`.`disrepair`,`b`.`fio`,
`b`.`address`,`b`.`phone`,`b`.`serial`,`b`.`performer`,
`b`.`note`,`b`.`document`,`b`.`repair_parts`,`b`.`salesman`
FROM `"
. SRV_DBPREFIX ."base` `b`
WHERE `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`id` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`date` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`device` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`brend` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`model` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`age` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`disrepair` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`fio` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`address` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`phone` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`serial` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`performer` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`note` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`document` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`repair_parts` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
OR `b`.`salesman` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
ORDER BY `b`.`id` DESC
"
);

можно ли его оптимизировать, чувствую что да, но понять как пока не могу.

Спустя 52 минуты, 5 секунд (11.05.2011 - 15:31) BorisBelyaev написал(а):
Или вот такой запрос, можно ли оптимизировать, может встроенной функцией SQL или еще как нибудь:

$res = $paginator -> calcQuery("SELECT `b`.`id`,`b`.`date`,`b`.`status`,`b`.`device`,`b`.`brend`,
`b`.`model`,`b`.`age`,`b`.`disrepair`,`b`.`fio`,
`b`.`address`,`b`.`phone`,`b`.`serial`,`b`.`performer`,
`b`.`note`,`b`.`document`,`b`.`repair_parts`,`b`.`salesman`
FROM `"
. SRV_DBPREFIX ."base` `b`
WHERE `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`id` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`date` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`device` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`brend` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`model` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`age` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`disrepair` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`fio` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`address` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`phone` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`serial` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`performer` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`note` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`document` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`repair_parts` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'

OR `b`.`status` IN('"
. escapeString($_SESSION['checked_status']['новая']) ."',
'"
. escapeString($_SESSION['checked_status']['в работе']) ."',
'"
. escapeString($_SESSION['checked_status']['выполнено']) ."')
AND `b`.`salesman` LIKE '%"
. escapeString(addcslashes($_SESSION['checked_status']['search'], '_%\\')) ."%'
ORDER BY `b`.`id` DESC
"
);

Спустя 52 минуты, 15 секунд (11.05.2011 - 16:23) killer8080 написал(а):
BorisBelyaev
как то странно у вас алиас к таблице прописан в запросах, может правильней так

...
SELECT
...
FROM `". SRV_DBPREFIX ."base` AS `b`
...

и зачем он вообще нужен? Там же запрос только к одной таблице.

Спустя 46 минут, 10 секунд (11.05.2011 - 17:09) BorisBelyaev написал(а):
Цитата (killer8080 @ 11.05.2011 - 13:23)
может правильней так

...
SELECT
...
FROM `". SRV_DBPREFIX ."base` AS `b`
...


и зачем он вообще нужен? Там же запрос только к одной таблице.

может правильнее AS `b`, точно не знаю но в той литературе что я читал было без AS.

По поводу необходимости - сейчас запрос к одной таблице, но в будущем планируется разделение этой таблицы на несколько, для ускорения работы БД. Формировать запросы буду при помощи INNER JOIN, чтобы код потом не править принял решение сразу писать так.

Спустя 16 часов, 27 минут, 46 секунд (12.05.2011 - 09:37) BorisBelyaev написал(а):
Цитата (lekafe @ 11.05.2011 - 15:53)
BorisBelyaev я чуть не подавился кофе, когда увидел ваши запросы. почитайте хотя бы про JOIN'ы.

Не могу понять причем тут JOIN, ибо пока у меня нет необходимости что либо объединять, мне необходимо сделать выборку из конкретной таблицы по определенным условиям.

Спустя 1 день, 2 часа, 25 минут, 31 секунда (13.05.2011 - 12:02) BorisBelyaev написал(а):
Посоветуйте люди добрые.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.