[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как убрать повторы
spooki
Вытягиваем из БД (postgres) по 25 значений и дальше постраничноая навигация

$bord_links = $core->table("Select * From board_index Where board_id = '".intval($url[3])."' and user_id = '".$user['id']."' and type = 'indexing' order by id", $url[4], 25);


Выводится в шаблоне таким образом:


<?foreach ($bord_links as $bord_links):?>
<?=$bord_links['lvl']?>
<?=$bord_links['pr']?>
<?endforeach;?>


Выглядит так:
user posted image

=======================

Как сделать чтоб не повторялись
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0
2 0


А выводило все единожды

user posted image

_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи
inpost
способ первый: distinct с выбором этих двух полей.
способ второй: не хранить дубли в БД, так как они не нужны. Хотя кто знает, зачем это тебе.
Способ 3: отсортировать по двум полям, далее в переменную добавлять последний вывод: $var = '1-2'; и при следующем выводе сверять, точно ли следующая запись такая же, и если да, то не выводить.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Valick
inpost, "Способ 3:" зачем же вкладывать спички в маленькие неокрепшие ркуи


_____________
Стимулятор ~yoomoney - 41001303250491
inpost
Valick
Если среди 100 записей встречается 1-2 повтора, то ничего страшного в 3-м способе нет. Вот если 100 записей, а вывести лишь 3, то плохой способ... всё дело в задаче.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
spooki
1. Не получилось.

$cena7 = $db->assoc("Select distinct pr, lvl From board_index Where board_id = '".intval($url[3])."' and type = 'indexing'");


<?foreach ($cena7 as $cena7):?>
<?=$cena7['lvl']?><br>
<?=$cena7['pr']?>
<?endforeach;?>

и вывело:
1
12
2




2. Полей в БД много и дубли встречаются, увы(((


3. Не допёр, знаний не хватает.
Поэтому и обратился за помощью

И кол-во записей может превышать 10.000 и повторы могут повторяться 100-2000

_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи
inpost
я не уверен, но разве так можно затирать одну переменную другой? foreach($var as $v), а не $var as $var...

К тому же почему вывелось всего 3 записи? Запрос для начала введи в PMA, проверь вывод там...

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
spooki
По поводу что вывелись 3 записи - не знаю.
Касаемо foreach($var as $v) или foreach($var as $var)
Все одинаково, без изменений

уже до банальности довел

$cena7 = $db->assoc("Select pr, lvl From board_index Where board_id = 22");


<?foreach ($cena7 as $cen7):?>
<?=$cen7['pr']?><br>
<?=$cen7['lvl']?>
<?endforeach;?>

И вывело
0
03
3



Пришел к выводу, что $db->assoc не корректно отрабатывает

а вот через функцию table $core->table
нормально, но при нем не работает distinct

// Формирует массив для таблицы.

function table($sql, $lst, $on_page){
global $db;
if(intval($lst) == 0) $lst = 1;
$this->_table_pages['lst'] = $lst;
$this->_table_pages['onpage'] = $on_page;
$this->_table_pages['sql'] = $sql;
$this->table_lich = (integer) $lst * $on_page - $on_page;
$table = $db->in_array(" $sql offset ".(($lst - 1)*$on_page)." limit $on_page ");
if(!$table) $table = array();
return $table;
}



=============================
SELECT DISTINCT pr, lvl
FROM board_index

Вывело нормально
user posted image

_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи
inpost
spooki
Я же сказал, введи напрямую в PMA, далее посмотри содержание массива $cena7 через
echo '<pre>'.print_r($array,1);

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

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
spooki
Сделал с DISTINCT pr, lvl - вывело:
Array
(
[pr] => 2
[lvl] => 3
)

Метод кривой думаю(((

_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи
inpost
в PMA ? Ты сравнивал?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
spooki
Да в PMA!
Сравнивал - Различаются.

Ура. Сделал!
$bord_links = $core->table("Select DISTINCT pr, lvl From board_index Where board_id = 22", $url[4], 50);

Все дело было в $db->assoc

$core->table - спас! Но ругался на order by


ТЕМУ МОЖНО ЗАКРЫТЬ И/ИЛИ УДАЛИТЬ

_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи
Быстрый ответ:

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