[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Новости без дублежей дата
10ozoz
Не могу собрать конструктор на половину собрал далее лыжня не едет .
Хочу вывести новость чтобы дата вывелась за сутки один раз далее новости если новости старые то дата и за след. день и тд .
2012-01-04 новость 1
2012-01-04 новость 2
2012-01-03 новость 3
Как видно дата дублируется везде ..
$mtime = date("Y-m-j");
$conn = db_connect();
$result = $conn->query("SELECT * FROM news WHERE time <= '$mtime' ORDER BY time DESC ");
while ($rows = $result->fetch_array()){
echo $rows['time']."".$rows['text']."<br>";
}
$result -> close();

хочу сделать так .
2012-01-04
новость 1
новость 2
2012-01-03
новость 3
Не могу довкуритьь как построить цикл внутри вайла .



Спустя 1 минута, 57 секунд (4.01.2012 - 21:03) Игорь_Vasinsky написал(а):
if($date !== $date)
{
echo $date.'<br/>';
echo $news.'<br/>';
}
else
echo $news.'<br/>';

Спустя 2 минуты (4.01.2012 - 21:05) Игорь_Vasinsky написал(а):
фигню какую то сморозил laugh.gif мусль ушла

было что то вродде хранить предидущую дату и сравнивать с ней следующие wink.gif

Спустя 16 минут, 40 секунд (4.01.2012 - 21:22) killer8080 написал(а):
Игорь_Vasinsky
ты наверно имел ввиду что то типа этого
$date = '';
while ($rows = $result->fetch_array()){
if($rows['time'] != $date){
$date = $rows['time'];
echo $date.'<br/>';
}
echo $news.'<br/>';
}

Спустя 5 минут, 51 секунда (4.01.2012 - 21:28) Игорь_Vasinsky написал(а):
может.. но тут логика

$date = ''

потом условие if($rows['time'] != $date)

оно же истенно будет всегда.. нет?

т.к. присвоение уже в условии
$date = $rows['time'];

Спустя 3 минуты, 22 секунды (4.01.2012 - 21:31) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 4.01.2012 - 20:28)
оно же истенно будет всегда.. нет?

Почему? На первой итерации там пустая строка, условия выполняется и в неё запишется текущая дата, и соответственно вывод. При последующих условие выполнится только если следующая дата отличается от предыдущей.

Спустя 2 минуты, 47 секунд (4.01.2012 - 21:34) Игорь_Vasinsky написал(а):
ph34r.gif точно.....

Спустя 1 час, 10 минут, 53 секунды (4.01.2012 - 22:45) 10ozoz написал(а):
killer8080
Я не понял не чего ... у меня много дат в бд .
Понял что WHERE там вообще не нужен .
$conn = db_connect();
$result = $conn->query("SELECT * FROM news ORDER BY time DESC ");
while ($rows = $result->fetch_array()){
echo $rows['time']."".$rows['text']."<br>";
}
$result -> close();

Я так понял нужно дату сохранить их БД потом проработать если новая обнавить и тд ? я верно понял ?

Спустя 1 минута, 58 секунд (4.01.2012 - 22:47) 10ozoz написал(а):
killer8080
Спасибо вам , извините за невнимательность .

Спустя 3 дня, 8 минут, 8 секунд (7.01.2012 - 22:55) 10ozoz написал(а):
Помоги еще разок по данной новости .. очень нужно доработать .. код работает на ура но чуток еще дорабоать нужно .
работает как просил вот так .
2012-01-04
_новость 1
_новость 2
2012-01-03
_новость 3
но тут еще кусочек нужно доработать . У меня возникла такая дилема только сейчас заметил ..
Новость 1 про урожай .. новость 2 про авто у меня получается так .

2012-01-04
_новость 1
---Урожай был собран
_новость 2
---Авто украли
_новость 1
----Картофель пошёл на экспорт

Получается у меня в нутри даты 2 новости про урожай .. а хочу сделать так .
2012-01-04
_новость 1
---Урожай был собран
---Картофель пошёл на экспорт
_новость 2
---Авто украли


Спустя 1 минута, 23 секунды (7.01.2012 - 22:56) 10ozoz написал(а):
В базе есть id_s по ней определяються новость .
id_s - 1 новость-1
id_s - 2 новость-2
и тд.

Спустя 2 минуты, 31 секунда (7.01.2012 - 22:59) Игорь_Vasinsky написал(а):
создай ещё одно поле в ДБ, назначь индекс, типа 1 - авто, 2 - уражай - и при выводе - SORT BY `index` или как у тя..

Спустя 11 минут, 9 секунд (7.01.2012 - 23:10) 10ozoz написал(а):
Игорь_Vasinsky
Мне нужно как с датой вышло .. также . Проверку сделать в нутри даты .. я делал новость 1 не выводиться .

Спустя 1 минута, 52 секунды (7.01.2012 - 23:12) Игорь_Vasinsky написал(а):
прочитай внимательно что я написал. попробуй.

Спустя 6 минут, 53 секунды (7.01.2012 - 23:19) 10ozoz написал(а):
Если я вас понял мне нужно сделать поле с цифрами новостей есть новость 1 то 1 и тд ?
так у меня она есть .
id-|-id_s-|-text-|
1___1____nn_|
2___1____tt__|
3___2____rr__|

Вы про поле id_s наверное ? 1 - овощи 2 это авто .

Спустя 18 минут, 4 секунды (7.01.2012 - 23:37) killer8080 написал(а):
10ozoz
покажи свой запрос к БД.

Спустя 17 минут, 9 секунд (7.01.2012 - 23:54) 10ozoz написал(а):
  $conn = db_connect();
$result = $conn->query("SELECT * FROM news ORDER BY time DESC ");
while ($rows = $result->fetch_array()){
if($rows['time'] != $date){
$date = $rows['time'];
echo $date.'<br/>';
}
echo $rows['id_s']."<br>";
echo $rows['text']."<br>";
}
$result -> close()

Это ваш код который вы мне помогли сделать ..
Получаеться он выводит по дате нормально .. а вот овоши в разнабой и пишет всегда овоши .. а мне нужно чтобы также как и дата Только в нутри даты формировались новости .. и также в другой дате .
Овощи
_картошка
_свекла
Авто
_БМВ[
/b]
а у меня в разнабой
[b]Овощи
_картошка
Авто
_БМВ
Овощи
_свекла

Спустя 12 минут, 40 секунд (8.01.2012 - 00:07) killer8080 написал(а):
10ozoz
Как вариант, можно сгруппировать вывод по id_s, а текст извлечь из group_concat()
Попробуй так

$conn = db_connect();
$result = $conn->query("
SELECT `time`, `id_s`, GROUP_CONCAT(`text` SEPARATOR '::::') AS `text`
FROM `news`
GROUP BY `id_s`
ORDER BY `time` DESC
"
);
while ($rows = $result->fetch_array()) {
if ($rows['time'] != $date) {
$date = $rows['time'];
echo $date . '<br/>';
}
echo $rows['id_s'] . "<br>";
$news = explode('::::', $rows['text']);
foreach($news as $text)
echo $text . "<br>";
}
$result->close();

Спустя 7 минут, 51 секунда (8.01.2012 - 00:15) 10ozoz написал(а):
killer8080
Это как ? я в этом то коде ужё в ступор встал .. user posted image

Спустя 2 минуты, 5 секунд (8.01.2012 - 00:17) killer8080 написал(а):
Цитата (10ozoz @ 7.01.2012 - 23:15)
Это как ? я в этом то коде ужё в ступор встал .

А ты его пробовал?

Спустя 3 минуты, 15 секунд (8.01.2012 - 00:20) 10ozoz написал(а):
Ну да .. вывел вроде как нужно у меня что там было 2 запроса к сразу .. я этот код дал чтобы разобраться когда ты доработаешь и я уже сам довкурю и прикручу но тут хех .. для меня тяжело .

Спустя 55 секунд (8.01.2012 - 00:21) Игорь_Vasinsky написал(а):
а что group_concat() на уровне интелекта уже текст новости распозднаёт???

Спустя 2 минуты, 27 секунд (8.01.2012 - 00:23) killer8080 написал(а):
10ozoz
почитай как работает group_concat(), тогда сам все поймешь wink.gif

Спустя 44 секунды (8.01.2012 - 00:24) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 7.01.2012 - 23:21)
а что group_concat() на уровне интелекта уже текст новости распозднаёт???

у него поле id_s определяет категорию новости wink.gif

Спустя 36 секунд (8.01.2012 - 00:25) 10ozoz написал(а):
У меня такой код полностью . Ок почитаю .
<?php
$conn = db_connect();
$result = $conn->query("SELECT news.id_s ,news.text , news.null , news.time , news.user , sy.poz , sy.pult FROM sy ,news WHERE sy.id = news.id_s ORDER BY time DESC ");
while ($rows = $result->fetch_array()){
if($rows['time'] != $date){
$date = $rows['time'];
echo "<p class='date'><strong>".$date."</strong></p>";

}
echo "<div id='newsst'><div id='marg'><a href='./images/'>".$rows['pult']."</a> <strong>".$rows['poz']."</strong></div></div>";
echo $rows['text'];
}
$result -> close();
?>

Спустя 8 минут, 43 секунды (8.01.2012 - 00:33) killer8080 написал(а):
10ozoz
а что за таблица sy? blink.gif

Спустя 11 минут, 26 секунд (8.01.2012 - 00:45) 10ozoz написал(а):
Да я так для теста создал .. просто в место SY потом поменятю на menu .. чтобы но контачить там .. а про груп мне понравилась статья .. буду ковырять .
Быстрый ответ:

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