такая задачка встала сделать универсальный запрос и вывод из него для двух разных таблиц, но с почти одинаковыми полями(у второй таблицы на одно поле больше)
Приведенный пример очень упрощенный.
вот первый...в нем только поле `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']
до этого места
Это подходит, но на самом деле там 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'];
}
типа такого, но это конечно неверно чтоб суть понять
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.