[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите придумать универсальный вывод из БД
GET
Здравствуйте...

такая задачка встала сделать универсальный запрос и вывод из него для двух разных таблиц, но с почти одинаковыми полями(у второй таблицы на одно поле больше)

Приведенный пример очень упрощенный.

вот первый...в нем только поле `one`

$m=mysql_query("SELECT `one` FROM `".mysql_real_escape_string($tab)."` WHERE `id`='".(int)$mod."' LIMIT 1");
if (mysql_num_rows($m))
{
$m_i=mysql_fetch_assoc($m);
echo $m_i['one'];
}


вот второй ... в нем еще и поле `two`

$m=mysql_query("SELECT `one`,`two` FROM `".mysql_real_escape_string($tab)."` WHERE `id`='".(int)$mod."' LIMIT 1");
if (mysql_num_rows($m))
{
$m_i=mysql_fetch_assoc($m);
echo $m_i['one'].'-'.$m_i['two'];
}


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

Например.

If ($a>1)
{
$path=',`two`';
}
else
{
$path='';
}


т.е. теперь можно записать так

$m=mysql_query("SELECT `one`".$path." FROM `".mysql_real_escape_string($tab)."` WHERE `id`='".(int)$mod."' LIMIT 1");
if (mysql_num_rows($m))
{
$m_i=mysql_fetch_assoc($m);
echo $m_i['one']."-".([b]но что вписать здесь???[/b]);
}




Спустя 5 минут, 6 секунд (13.01.2012 - 09:55) Winston написал(а):
Что еще за хрень? :blink:
Цитата (A.B.C. @ 13.01.2012 - 08:50)
FROM `".mysql_real_escape_string($tab)."`


Цитата (A.B.C. @ 13.01.2012 - 08:50)
Например

Ты нормальный пример написал, лучше даже так можно написать
$path = '*';
If ($a>1)
$path=' `one` ';
elseif(условие)
$path=' `two` ';
elseif(условие)
$path = ' `one`, `two` ';

$m=mysql_query("SELECT ".$path." FROM `".$tab."` WHERE `id`='".(int)$mod."' LIMIT 1");

Спустя 7 минут, 11 секунд (13.01.2012 - 10:02) GET написал(а):
Winston

Цитата
FROM `".mysql_real_escape_string($tab)."`


защита от sql инъекций, это потому, что имя таблицы - переменная...их две может быть разных в одной только поле `one` в другой и `one` и `two`

сам запрос понятен...непонятна эта часть

echo $m_i['one']."-".(но что вписать здесь???);

нужно вместе с $path видимо еще какую-то переменную вводить чтоб вывести инфу $m_i['two']

Спустя 2 минуты, 35 секунд (13.01.2012 - 10:05) Winston написал(а):
$m_i['one'] . ' - ' . (!empty($m_i['two']) ? $m_i['two'] : '');

?

Спустя 4 минуты, 48 секунд (13.01.2012 - 10:09) GET написал(а):
Winston

Это подходит, но на самом деле там while($m_i=mysql_fetch_assoc($m))

стоит и каждый раз это условие будет проверятся...я думал придумать способ, что б определять $m_i['one'] и $m_i['one'].'-'.$m_i['two']

до этого места

Спустя 1 минута, 18 секунд (13.01.2012 - 10:11) GET написал(а):
If ($a>1)
{
$path=',`two`';
$r= $m_i['one'].'-'.$m_i['two'];
}
else
{
$path='';
$r= $m_i['one'];
}

типа такого, но это конечно неверно чтоб суть понять


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

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