Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Перевод даты 2008-11 в Ноябрь 2008 и тд, помогите решить проблемку

Сообщения:  [1-10]   [11-17] 

 
 автор: TetRiska   (21.11.2008 в 13:20)   письмо автору
 
   для: TetRiska   (20.11.2008 в 15:21)
 

Вот посидел и нашел выход как перевести:

$month_names = array  
(1 => 'Январь',  
2 =>'Февраль',  
3 =>'Март',  
4 =>'Апрель',  
5 =>'Май',  
6 =>'Июнь',  
7 =>'Июль',  
8 =>'Август',   
9 =>'Сентябрь',  
10 =>'Октябрь',  
11 =>'Ноябрь',  
12 =>'Декабрь'  
);
$result4 = "2008-11";
list ($year,$date) = explode("-",$result4);
echo $month_names[$date], " " ,$year;


Выводит Ноябрь 2008 как и надо было, но есть одно НО...Как только в $result4 выполняю запрос
$result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data ORDER BY month DESC",$db);

который выберает не повторяющиеся даты и обрезает день, из чего получается 2008-11, выводятся следующие нотисы:

Notice: Undefined offset: 1 in k:\home\localhost\www\video_blog\blocks\righttd.php on line 103
103 -
list ($year,$date) = explode("-",$result4);

Notice: Undefined index: in k:\home\localhost\www\video_blog\blocks\righttd.php on line 104
-Resource id #8

104 -
echo $month_names[$date], "-" ,$year;

В чем же дело? :(

Я предпологаю что запрос нам возвращает 2008-11 в формате даты, тоесть нада ее конвертнуть? Или я ошибаюсь?

  Ответить  
 
 автор: TetRiska   (20.11.2008 в 16:13)   письмо автору
 
   для: sim5   (20.11.2008 в 15:51)
 

Как точнее проверить то, что заносится в массив $myrow после выполнения запроса
$result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data ORDER BY month DESC",$db);
? Вывести на экран?, тоесть echo $myrow["month"]; ? После вывода имеем результат 2008-11... в базе поле с датой стоит по умолчанию 0000-00-00...

  Ответить  
 
 автор: sim5   (20.11.2008 в 15:51)   письмо автору
 
   для: TetRiska   (20.11.2008 в 15:48)
 

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

  Ответить  
 
 автор: TetRiska   (20.11.2008 в 15:48)   письмо автору
 
   для: AcidTrash   (20.11.2008 в 15:31)
 

Нет не все...Выводятся те которые не повторяются, в запросе указано ж это
$result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data ORDER BY month DESC",$db);

и потом в цикле, который есть, прогоняются значения массива $myrow4
do

{

printf ("<p><a href='view_date.php?date=%s'>%s</a></p>", $myrow4["month"], $myrow4["month"]);

}

while ($myrow4 = mysql_fetch_array($result4));

}


я выше пример кода приводил, где идет формировка запроса и вывод...Остается правильно применить тот массив дат :(

  Ответить  
 
 автор: AcidTrash   (20.11.2008 в 15:31)   письмо автору
 
   для: TetRiska   (20.11.2008 в 15:25)
 

Как я понял у вас выводятся все даты из таблицы.
Тогда $myrow4 = mysql_fetch_array($result4) надо прогонять через цикл.

  Ответить  
 
 автор: TetRiska   (20.11.2008 в 15:25)   письмо автору
 
   для: sim5   (20.11.2008 в 15:11)
 

Насколько я вижу, то в масиве
$myrow4["month"]
лежит такая дата формата 2008-11 ...запросом
$result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data ORDER BY month DESC",$db);
мы ее получили и записали в масив
$myrow4 = mysql_fetch_array($result4);

  Ответить  
 
 автор: TetRiska   (20.11.2008 в 15:21)   письмо автору
 
   для: AcidTrash   (20.11.2008 в 15:13)
 

Вписал, результат тот же

  Ответить  
 
 автор: AcidTrash   (20.11.2008 в 15:13)   письмо автору
 
   для: TetRiska   (20.11.2008 в 15:04)
 

А вы собственно пытаетесь strtotime`мить дескриптор запроса.
После строки с mysql_query, впишите
$result4=mysql_result($result4,0,"month"); 

  Ответить  
 
 автор: sim5   (20.11.2008 в 15:11)   письмо автору
 
   для: TetRiska   (20.11.2008 в 15:04)
 

Вы сперва проверьте результат своего запроса.

  Ответить  
 
 автор: TetRiska   (20.11.2008 в 15:04)   письмо автору
 
   для: sim5   (20.11.2008 в 07:40)
 

После того как слепил такое:

$month_names = array  
(1 => 'Январь',  
'Февраль',  
'Март',  
'Апрель',  
'Май',  
'Июнь',  
'Июль',  
'Август',   
'Сентябрь',  
'Октябрь',  
'Ноябрь',  
'Декабрь'  
);
$result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data ORDER BY month DESC",$db);
$result4 = strtotime($result4);
echo $month_names[date("n", $result4)] . " " . date("Y", $result4);


Получили и варнинг и нотис :(

Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in k:\home\localhost\www\video_blog\blocks\righttd.php on line 104

Notice: Undefined offset: 0 in k:\home\localhost\www\video_blog\blocks\righttd.php on line 104

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования