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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

zagorisback



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

Код:
 
SELECT *,
(CASE
  WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
  THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
  ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
END) as newdate FROM actors WHERE newdate
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK) ORDER BY newdate asc
 

 
это тоже не работает
 
Я изменил «actors» с «аctor»
 
не работает

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:36 14-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
ок, проверил, так как столбец вычисляемый, то замените последний WHERE на HAVING

Цитата:
SELECT *,
(CASE
  WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
  THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
  ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
END) as newdate FROM actor HAVING newdate
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK) ORDER BY newdate asc

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:46 14-09-2019 | Исправлено: Mavrikii, 23:46 14-09-2019
zagorisback



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

Цитата:
 
<?php
     
    require_once("connetti.php");
     
// just returns the actor having a birthday
 
    $query = mysql_query("SELECT *,
(CASE
  WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
  THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
  ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
END) as newdate FROM actor HAVING newdate
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK) ORDER BY newdate asc");
    while($row=mysql_fetch_array($query)){
?>
 
 

 
 
EDIT: моя ошибка
 
завод  
 
Mavrikii СПАСИБО ОГРОМНОЕ
 
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:00 15-09-2019 | Исправлено: zagorisback, 00:05 15-09-2019
Mavrikii

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

Цитата:
ошибка

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

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 00:04 15-09-2019
zagorisback



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

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:06 15-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
привет, хорошее воскресенье
 
Я также хотел бы включить "COUNT" в запросе для подсчета дней рождения
 
пример:
 
Birthday from Today or 2 Week (3)
 
спасибо
 

Код:
 
<?php
     
    require_once("connetti.php");
     
// just returns the actor having a birthday
 
    $query = mysql_query("SELECT *,
(CASE
  WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
  THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
  ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
END) as newdate FROM actor HAVING newdate
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK) ORDER BY newdate asc");
    while($row=mysql_fetch_array($query)){
?>  
 

 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:20 15-09-2019 | Исправлено: zagorisback, 10:22 15-09-2019
Mavrikii

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

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

в данном запросе он не нужен.
count($actors) в самом php

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:37 15-09-2019
zagorisback



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

 
 
and where is the variable in the SQL query?
 
а где переменная в запросе SQL?
 

Код:
 
<?php echo count($actor) . $row ['nome'] ?><br><?php echo "<a href=\"cinema.php?id=" . $row['actor_id'] . "\">" ."<br>". $row['nome']  . "</a>";?>
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:56 15-09-2019
Mavrikii

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

Цитата:
а где переменная в запросе SQL?

нигде, считаем просто количество элементов в массиве, что был получен из SQL запроса.
зачем отдельно что то считать, если и так выбираете всех, у кого ДР в этот промежуток?
 
$actors = birthday_today();
$count = count($actors);

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:58 15-09-2019
zagorisback



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

Код:
 
<?php
$actors = birthday_today();
$count = count($actors);
?>
 

 

Код:
 
<?php echo $actors ;?>
 

 
Fatal error: Call to undefined function birthday_today() in .... on line 48
 
line 48
 

Код:
 
$actors = birthday_today();
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 07:43 16-09-2019
Mavrikii

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

Цитата:
Call to undefined function birthday_today()

Думаем, думаем, почему этой функции нет, хотя раньше была в вашем коде.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 08:37 16-09-2019
zagorisback



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

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:49 16-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
Я не хочу помогать тем, кто даже не пытается думать.
Вам сообщение явно говорит, что функция birthday_today не определена. Потому что ее нет в том месте, где вы ее вызывали. Хотя раньше была, показывали код и все работало. Какие делаем выводы? Либо что функцию переименовали, либо что эти две строчки используются в другом файле. Это настолько элементарно, неужели нужно все до мелочей разжевывать?

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 19:43 16-09-2019
zagorisback



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

PHP до сих пор неизвестен мне,
Я занимаюсь этим в свободное время, я не программист, моя работа и другое, я строю дома.
Мое это просто хобби, чтобы попытаться выучить этот язык.
Если я напишу здесь и потому, что я не могу решить проблему.
Если вы хотите помочь мне, я счастлив, в противном случае я благодарю вас в любом случае. терпение
 
PHP is a language still unknown to me,
I'm studying it in my spare time, I'm not a programmer, my work and another, I build houses.
Mine is just a hobby to try to learn this language.
If I write here and because I am unable to solve the problem.
If you want to help me I'm happy, otherwise I thank you anyway. Patience
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 20:02 16-09-2019
Mavrikii

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

Цитата:
Мое это просто хобби, чтобы попытаться выучить этот язык

так прочитайте хотя бы один учебник, ибо последний вопрос - это основа языка.
и сообщение об ошибке вполне информативно, чтобы понять в чем проблема.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 20:05 16-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
У меня уже есть другой «счет» в коде, и это работает,
но это работает с SQL-запросом
 
 
Вы указали, что в запросе это не обязательно, поэтому я не понимаю, как заставить его работать
 
 
I already have another "count" in the code and this works,
but it works with the sql query
 
you have specified that in the query it is not necessary, so I don't understand how to make it work
 
это другой код, и он отлично работает
 

Код:
 
$result = mysqli_query($link, "select COUNT(gallery_id) AS count FROM gallery where actor_id_fk=".$_GET['id']);
 

 

Код:
 
<?php echo  $num_rows['count'];?>
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:27 16-09-2019 | Исправлено: zagorisback, 21:28 16-09-2019
Mavrikii

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

Цитата:
это другой код, и он отлично работает

если вы делаете выборку из базы для вывода, то count можно считать уже по результатам, а не SQL запросом.
SQL COUNT, в данной ситуации, нужно использовать в другом случае - при подсчете количества дней рождения в разные периоды.
 
но, раз уж так хочется, то просто
Код:
SELECT COUNT(*) count FROM (
SELECT *,
(CASE
  WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
  THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
  ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
END) as newdate FROM actor HAVING newdate
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK)
ORDER BY newdate ASC
) tmp

 

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 21:37 16-09-2019
zagorisback



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


Цитата:
 
SELECT COUNT(*) count FROM (
SELECT *,
(CASE
  WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')
  THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
  ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d'))
END) as newdate FROM actor HAVING newdate
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK)
ORDER BY newdate ASC
) tmp  
 

 
 
это не работает
ноль результатов

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:47 16-09-2019
Mavrikii

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

Цитата:
это не работает
ноль результатов

это - работает, я проверил и запрос не отличается от того, что был использован ранее.
значит нет дат, что попадают в этот промежуток.
 
для оптимального запроса можно заменить SELECT *, на SELECT actor_id,
но если запрос пустой (count = 0), то просто нет дней рождения в промежутке в 2 недели.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 21:48 16-09-2019 | Исправлено: Mavrikii, 21:49 16-09-2019
zagorisback



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


Цитата:
 
это - работает, я проверил и запрос не отличается от того, что был использован ранее.
значит нет дат, что попадают в этот промежуток.  
 

 
ты не прав
отмечает ноль результатов,
с предыдущим запросом я вижу день рождения сегодня и еще 3 в ближайшие дни
PS: ИНТЕРВАЛ 4 НЕДЕЛИ
 
you are wrong
marks zero results,
with the previous query I see a birthday today and 3 more in the coming days
ps: INTERVAL 4 WEEK

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:57 16-09-2019 | Исправлено: zagorisback, 21:57 16-09-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 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