А как понять что бы зафиксировалась дата? И ещё, дата в каком формате? И ещё, вставлять INSERT читать SELECT. И ещё, нафег писать 3 поста, если можно нажать edit и отредактировать?
Byrger создай поле Code: `date` timestamp NOT NULL default CURRENT_TIMESTAMP а када будешь выдёргивать дату делай PHP: $res = mysql_query(SELECT UNIX_TIMESTAMP(date) AS date FROM `news` WHERE `id`=1); $fetch = mysql_fetch_assoc($res); а потом чтоб получить дату в любом формате можно сдлеать так PHP: date('d-m-Y',$fetch['date']);
А можно попросить вас написать как будет выглядить SQl запрос... ----Через 5 мин ---- Всё сделал... ---Ещё 2мин---- А как сбросить счётчик id в БД А то у меня была таблица 1... 2... 3... потом удалил это всё и нумирация навых данных пошла с 4 Как можно это сбросить?
А не подскажите пример фунции которая будет читать всё что есть в таблице... Или хотяб какой запрос за это отвечает в SQL...
Я делаю так а массив выходит по последнему в списке полю PHP: $rec= mysql_query("SELECT * FROM news"); $a_row=mysql_fetch_array($rec); print "<pre>"; var_dump ($a_row); print "</pre>"; Code: array(6) { [0]=> string(1) "7" ["id"]=> string(1) "7" [1]=> string(4) "пока" ["news"]=> string(4) "пока" [2]=> string(19) "2008-11-15 15:11:37" ["date"]=> string(19) "2008-11-15 15:11:37" } Вот таблица News (скрин) _http://s1.dump.ru/viewer/1214346/ Как вывести всё в этот массив...?
PHP: $rec= mysql_query("SELECT `id`,`news`,UNIX_TIMESTAMP(date) AS date FROM news WHERE 1"); while($a_row=mysql_fetch_assoc($rec)) { echo 'id:'.$a_row['id']; echo ' news:'.$a_row['news']; echo ' date:'.date('d-m-Y',$a_row['date']).'<br />'; }
Как-то странно теперь не могу послать запрос на создание ИД который автоматом задаётся и Дату... Напишите плиз SQL запросы на это если не сложно (на созданее полей в БД) И почему он мне после PHP: echo date('d-m-Y',$a_row['date']); Выводит 01-01-1970 ? Может сделать что-то типа PHP: echo substr ($a_row['date'],0,10); Он выводит но в формате 2008-11-15 А надо 15.11.08
имхо для даты лучше создать поле в БД с типом datetime и вносить туда запись при помощи NOW() Code: CREATE TABLE `blabla`( `id` INT NOT NULL auto_increment, `dt` DATETIME NOT NULL PRIMARY KEY (`id`) ) ENGINE=MyISAM; Вносить запись так: PHP: mysql_query('INSERT INTO `blabla` VALUES(NULL, NOW())'); и дата будет храниться в формате 2008-09-19 18:01:21 А для вывода в удобном тебе формате используй регулярку. Я давненько писал подобную ф-цию, можешь переделать под себя. (там можно обойтись одной регуляркой) PHP: function mydate($date){ if(preg_match('#^[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}$#', trim($date))){ preg_match('#(\d+)-(\d+)-(\d+)\s(\d+):(\d+):(\d+)#', trim($date), $out); if($out[1] == date('Y') && $out[2] == date('m') && $out[3] == date('d')){ $date = 'Сегодня в '.$out[4].':'.$out[5]; }elseif($out[1] == date('Y') && $out[2] == date('m') && $out[3] == date('d') - 1){ $date = 'Вчера в '.$out[4].':'.$out[5]; }else{ $date = $out[3].'.'.$out[2].'.'.$out[1].' в '.$out[4].':'.$out[5]; } } return $date; }
.:EnoT:. извини конечно но бред ... что лучше назначить нынешний таймстамп а потом выводить дату в ЛЮБОМ ФОРМАТЕ или же ипаца с регулярками и тормозить процесс выполнения ?? с помощью ф-ции date(); можно вывести дату как хочишь ... только нада указать второй параметр в виде таймстамп .... это наилучший выход(НЕ ИМХО) Byrger может ты наконецто возьмёшь книжку и сам всё прочитаешь и сделаешь? ... ты скорее всего не сделал default current_timestamp ты перед тем как писать чтото хотяб книжку чтоль прочти ... и кстате мускул не может УГАДАТЬ када была занесена запись если ты создал поле дайт ПОСЛЕ того как занёс запись!!!!!
У меня PhpMyAdmin тупит или MySQl уже раз 20 разных запрсов пытался послать и нифига... _http://s1.dump.ru/viewer/1214885/ ЗЫ. Я с книгой сижу но у меня что-то не получается SQL запросы через PhpMyAdmin сделать... Даже на такой запрос ругается Code: ALTER TABLE `faq` ADD `111` INT NOT NULL auto_increment Code: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Doom123, Просто для него я думаю будет лучше так, потому что я думаю он запутается с преобразованием даты) По хорошему конечно нужно создавать поле типа INT и вносить дату с помощью UNIX_TIMESTAMP(), а потом преобразовывать как угодно)
Code: CREATE TABLE `news` ( `id` int(11) NOT NULL auto_increment, `date` timestamp NOT NULL default CURRENT_TIMESTAMP, `news` text NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `news` (`news`) ) ENGINE=MyISAM Вот пример норм запроса ... в твоём запросе ты походу в конце запетую забыл