Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
хотел бы добавить месяцы и дни

отсчитывающие от чего? от начала года? ну так это глупо, нужно считать от реальной даты, которой у вас нет.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:34 08-07-2020
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
solved
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:30 25-02-2021 | Исправлено: zagorisback, 22:24 25-02-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня есть этот запрос, который должен сравнить 3 отметки времени и показать мне последние в порядке времени в поле dateup
 
те, что выделены красным, - неправильные результаты  
 

Код:
 
 
SELECT
    actor.last_update,
    ptgweb.`update` AS update1,
    ptgweb2.UPDATE AS update2,
CASE
         
        WHEN ptgweb.`update` > ptgweb2.`update` > actor.last_update THEN ptgweb.`update`
        WHEN ptgweb.`update` > ptgweb2.`update` > actor.last_update THEN ptgweb2.`update`  
        ELSE actor.last_update  
    END AS dateup  
FROM
    actor
    LEFT JOIN ptgweb ON actor.actor_id = ptgweb.actor_id
    LEFT JOIN ptgweb2 ON actor.actor_id = ptgweb2.actor_id  
ORDER BY
    dateup DESC  
    LIMIT 10
 
 
 

 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 07:01 19-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ORDER BY
    dateup DESC  

вот оно и отсортировало по dateup DESC, что не так то?
хочется сортировать по другому столбцу - указываем его.
 

Цитата:
те, что выделены красным, - неправильные результаты  

ну так укажите как "правильно", ибо сейчас как и сказали

Цитата:
в порядке времени в поле dateup


Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 07:14 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуй,
если вы посмотрите внимательно, вы поймете, что я имею в виду
красным они ошибаются, потому что в dateup он должен отображать последнюю дату и время
 
Я поставил экран назад, потому что я сделал ошибку в освещении с красным  
 
время и дата меньше
 
2021-03-17 14:54:45
 
2021-03-18 12:54:21
 
2021-03-14 18:10:55
 
   
 
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 07:33 19-03-2021 | Исправлено: zagorisback, 07:34 19-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
научитесь внятно объяснять проблему.
а нормально это будет - отображать в столбце более позднее время из dateup или update2
 
выводите столбец как MAX(dateup, update2)
можно через IF(dateup > update2, dateup, update2)

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 07:38 19-03-2021 | Исправлено: Mavrikii, 07:39 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
где мне поместить код?
можешь выложить мне решение в "query"?

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 07:45 19-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SELECT
    actor.last_update,
    ptgweb.`update` AS update1,
    ptgweb2.UPDATE AS update2,
    MAX(ptgweb.`update`, ptgweb2.`update`, actor.last_update) AS dateup  
FROM
    ....

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 07:51 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня ошибка в запросе  
 

Цитата:
 
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' ptgweb2.`update`, actor.last_update) AS dateup
FROM
    actor
    LEFT JOIN ' at line 5
 

 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:00 19-03-2021 | Исправлено: zagorisback, 08:01 19-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
У меня ошибка в запросе

сорри, с другим языком перепутал.. в MySQL - GREATEST
GREATEST(ptgweb.`update`, ptgweb2.`update`, actor.last_update) AS dateup

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 08:02 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

отлично, это работает
 
это решение предложил мне человек, изучающий информатику, но он не смог его решить
 
вместо этого было проще с функцией GREATEST  
 
СПАСИБО
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:17 19-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
отлично, это работает

на картинке, в последней строке, не должно быть NULL в конце.
должно быть значение last_update
 
перепишите как
GREATEST(actor.last_update,  COALESCE(ptgweb.`update`, 0), COALESCE(ptgweb2.`update`, 0)) AS dateup  
если last_update тоже может быть NULL, то и ему так же.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 08:19 19-03-2021 | Исправлено: Mavrikii, 08:22 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
обновлено,
причина, по которой он отображает NULL и почему в этом поле еще нет данных
метка времени в начале сбрасывается, затем, когда я вставляю данные в поле url, они обновляются  
 
он также оценки NULL, потому что нет никаких записей, связанных с актером
 
   
 
Добавлено:
одна последняя вещь
 
мы видели, что есть 3 поля
 
как связать значок с последней отметкой времени
 
пример
 
actor.last_update
отображается значок 1
 
ptgweb.`update`
отображается значок 2
 
ptgweb2.update
отображается значок 3
 
но результат dateup

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:32 19-03-2021 | Исправлено: zagorisback, 08:57 19-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
как связать значок с последней отметкой времени

зачем?
 
для этого лучше использовать переменную, в которую можно загнать значение dateup.
и использовать ее уже для "значка", хотя лучше выводить его уже в php скрипте, сравнивая остальные временные значения из select.
 
@dateup := GREATEST(actor.last_update,  COALESCE(ptgweb.`update`, 0), COALESCE(ptgweb2.`update`, 0)) as dateup,
IF(@dateup = actor.last_update, 1, IF(@dateup = ptgweb.`update`, 2, 3)) as flag
снова могут быть особенности с NULL
 
либо через CASE WHEN ... THEN ... ELSE ...

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 09:30 19-03-2021 | Исправлено: Mavrikii, 09:34 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

нечто подобное  
 
 
   
 
а затем в скрипте PHP  
 

Код:
 
 
if($fetch->flag) echo "<img src=\".$flag\" alt=\"new\" />";
 
 

 
точно?
 
Добавлено:
Спасибо большое за твою помощь,
это отлично работает  
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:51 19-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуй
может быть интегрирован в код,
ход времени (dateup) в текстовом формате?
пример:
обновлено 1 минуту назад
обновлено 1 час назад
обновлено 10 часов назад
обновлено вчера
обновлено неделю назад
так далее..  
 

Код:
 
 
@dateup := GREATEST(actor.last_update,  COALESCE(ptgweb.`update`, 0), COALESCE(ptgweb2.`update`, 0)) as dateup,
IF(@dateup = actor.last_update, 1, IF(@dateup = ptgweb.`update`, 2, 3)) as flag
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 20:31 22-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
пример:

это не задача для SQL. это задача для PHP или JS

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:33 22-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ты ошибаешься, даже в mysql
Я позже опубликовать код,
но она должна интегрироваться с одной выше

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 07:29 23-03-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
ошибаешься, даже в mysql

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

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 07:34 23-03-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

и каким был бы код PHP?
 
также учитывая время UTC
поле, из которого, чтобы получить данные электронной dateup

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:48 23-03-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru