Некорректная передача переменной.

Alkeeper

Новичок
Некорректная передача переменной.

Есть массив запросов:

PHP:
$sql = array(

    "mysql_get_siteconf" => "SELECT * FROM ".$pfx."site_config",
    "mysql_check_member" => "SELECT * FROM ".$table_prefix."user_group WHERE `group_id` = ? AND `user_id` = ?",
    "mysql_get_news_num" => "SELECT COUNT(*) FROM ".$pfx."news_text",
    "mysql_get_newslist" => "SELECT n.*,u.user_id,u.username,COUNT(c.comm_id) AS `comms` FROM ".$pfx."news_text AS `n` LEFT JOIN ".$table_prefix."users AS `u` ON (n.entry_poster_id = u.user_id) LEFT JOIN ".$pfx."comments AS `c` ON (n.entry_id = c.entry_id AND c.comm_type = 'n') WHERE u.user_id = n.entry_poster_id GROUP BY n.entry_id ORDER BY n.entry_date DESC "

    );
Есть функция:

PHP:
    function show_news_list ($limit = 0)
    {
        global $dbase,$sql,$dbms,$tpl,$conf,$lang_site;
        if ($limit)  $tpl->assign ('news', $dbase->getAll($sql[$dbms."_get_newslist"]. "LIMIT 0, $limit"));
        else
        {
            if ($_GET["start"]) $offset = $_GET["start"];
            else $offset = 0;
            $news_num = $dbase->getOne($sql[$dbms."_get_news_num"]);
            $tpl->assign ('app_name', 'news');
            $tpl->assign ('app_title', " :: " . $lang_site["news_title"]);
            $tpl->assign ('news', $dbase->getAll($sql[$dbms."_get_newslist"]. "LIMIT $offset, {$conf["news_on_main"]}"));
            if ($news_num > $conf["news_on_main"])
            {
                $tpl->assign ('pagebar', parse_page_bar($news_num,$offset,$conf["news_on_main"]));
            }
        }
        return $tpl->fetch ("news_list.tpl");
    }
Переменная в $sql[$dbms."_get_newslist"] в первом случае передает только первый символ (только "S"), во втором -нормальный запрос. В чем может быть дело?
 

Alkeeper

Новичок
в if($limit) : string(1) "S"
в else :
string(316) "SELECT n.*,u.user_id,u.username,COUNT(c.comm_id) AS `comms` FROM nash_news_text AS `n` LEFT JOIN phpbb_users AS `u` ON (n.entry_poster_id = u.user_id) LEFT JOIN nash_comments AS `c` ON (n.entry_id = c.entry_id AND c.comm_type = 'n') WHERE u.user_id = n.entry_poster_id GROUP BY n.entry_id ORDER BY n.entry_date DESC "
 

white phoenix

Новичок
Alkeeper
а если после строчки
PHP:
global $dbase,$sql,$dbms,$tpl,$conf,$lang_site;
? Какая версия PHP?
 

Alkeeper

Новичок
Итак после нее ставил (внутри условий)

4.3.6

Что характерно, вчера все работало на ура. :(
 

white phoenix

Новичок
Сделай и покажи
PHP:
var_dump($sql);
в обоих случаях. Советую обновить до 5.1.1.
 

Alkeeper

Новичок
упсь, понял что нужно до условий

-~{}~ 18.12.05 15:13:

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

Спасибо.
 
Сверху