Не нравятся результаты поиска? Попробуйте другой поиск!

Как получить все записи из таблицы БД


     11.09.2013    Общие вопросы по PHP, Модули, MySQL    1958

вопрос
Добрый день! Подскажите, как получить все записи из таблицы dle_list, там аналог dle_post, только новости другие. Каждая новость с отдельным id, отдельное поле. Т.е. там просто хранятся id и id новости в dle_post. (Подобие закладок в dle_users, но каждая закладка в отдельной записи.)

Запрос:

$row = $db->super_query( "SELECT * FROM dle_list" );


Код:

$list = explode(",", $row['id']);

foreach ( $list as $daten ) {
$fav_list[] = "'" . intval($daten) . "'";
}

$list = implode( ",", $fav_list );

$id = "(" . $list . ")";


Получаем все новости из таблицы:


$sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post where id in $id";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where id in {$id}";

$allow_active_news = TRUE;

require (ENGINE_DIR . '/modules/show.short.php');


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

Ответа пока нет


Комментарии пользователей (5)

Ayk
1

154 | 94

Ayk - 11 сентября 2013 17:03 - Юзер


Примерно похожее строение таблицы

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 11 сентября 2013 21:30 - Админ

как то так:
$dle_list = $db->super_query( "SELECT * FROM dle_list LIMIT 0, 10" );
while ($row = $db->get_row($dle_list)) {
    $tpl->set( '{title}', $row['title'] );
}

Каков вопрос - таков и ответ. Просто помните об этом.

Ayk
1

154 | 94

Ayk - 11 сентября 2013 22:23 - Юзер

$tpl->load_template( "reals.tpl" );

$dle_list = $db->super_query( "SELECT * FROM dle_list LIMIT 0, 10" );
while ($row = $db->get_row($dle_list)) {
    $tpl->set( '{id}', $row['id'] );
}

$tpl->compile( 'content' );
$tpl->clear();


весь код получается? Почему-то не получаю запрос id, выходит просто тег {id}

TheImDim
18

327 | 291

TheImDim - 12 сентября 2013 02:33 - Юзер

Нужно использовать query вместо super_query

$row = $db->query( "SELECT * FROM dle_list" );

далее в цикле:

while ($row = $db->get_row($dle_list)) {
    $tpl->set( '{id}', $row['id'] );
}


Но если уж хочеться с super_query, то тогда нужно передать второй параметр как true:

$dle_list = $db->super_query( "SELECT * FROM dle_list LIMIT 0, 10", true );


Тогда функция возратит массив, который используем в цикле:


for( $i = 0; $i < count( $dle_list ); $i++ ) {
    $tpl->set( '{id}', $dle_list[$id] );
}

Ayk
1

154 | 94

Ayk - 12 сентября 2013 12:08 - Юзер

Спасибо!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы