|
|
|
| Не могу понять простейший вопрос, как можно в одну ячейку таблицы внести данные из нескольких переменных.
$ver = mysql_query("INSERT INTO lgar (title, datetime_insert, datetime, datetime_close, url, comment, status) VALUES ('$title',
NULL, $datetime, '$day.$month', '$url', '$comment', $status);");
|
| |
|
|
|
|
|
|
|
для: lgar
(27.02.2012 в 11:43)
| | Если вам не хочется выделять переменные при помощи ".$day."".$month.", заключайте их в фигурные скобки
$ver = mysql_query("INSERT INTO lgar (title, datetime_insert, datetime, datetime_close, url, comment, status) VALUES ('$title',
NULL, $datetime, '{$day}{$month}', '$url', '$comment', $status);");
|
| |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 12:01)
| | Спасибо, в таком формате ".$day."".$month." как точку поставить между переменными?
- так не работает. | |
|
|
|
|
|
|
|
для: lgar
(27.02.2012 в 12:18)
| | А зачем вам такое нагромождение? Поступите проще:
| |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 12:58)
| | Я так пробовал. Точку кто-то съедает.
mysql> SELECT * FROM lgar;
+----+----------+---------------------+------------+----------------+---------+------+--------+
| id | title | datetime_insert | datetime | datetime_close | comment | url | status |
+----+----------+---------------------+------------+----------------+---------+------+--------+
| 1 | Тест | 2012-02-27 10:53:56 | 1330326000 | 27 | test | test | NULL |
| 2 | Тест | 2012-02-27 10:55:37 | 1330326000 | 27 | test | test | NULL |
| 3 | Тест | 2012-02-27 11:01:48 | 1330326000 | 27 | test | test | NULL |
| 4 | Тест | 2012-02-27 11:02:58 | 1330326000 | 27 | test | test | NULL |
| 5 | Тест | 2012-02-27 12:03:48 | 1330329600 | 272 | test | | NULL |
| 6 | Тест | 2012-02-27 12:05:45 | 1330301400 | 272 | test | | NULL |
| 7 | Тест | 2012-02-27 12:13:58 | 1330301400 | 27 | test | | NULL |
| 8 | Тест | 2012-02-27 12:14:42 | 1330301400 | 27 | test | | NULL |
| 9 | Тест | 2012-02-27 12:15:22 | 1330301400 | 25 | test | | NULL |
| 10 | Тест | 2012-02-27 12:37:19 | 1330301400 | 0 | test | | NULL |
| 11 | Тест | 2012-02-27 12:38:17 | 1330301400 | 0 | test | | NULL |
| 12 | Тест | 2012-02-27 12:39:00 | 1330301400 | 0 | test | | NULL |
| 13 | Тест | 2012-02-27 17:21:48 | 1330349400 | 272 | test | | NULL |
| 14 | Тест | 2012-02-27 17:23:20 | 1330349400 | 272 | test | | NULL |
| 15 | Тест | 2012-02-27 17:24:15 | 1330349400 | 272 | test | | NULL |
+----+----------+---------------------+------------+----------------+---------+------+--------+
|
mysql> describe lgar;
+-----------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | text | NO | | NULL | |
| datetime_insert | timestamp | NO | | CURRENT_TIMESTAMP | |
| datetime | bigint(11) | NO | | NULL | |
| datetime_close | bigint(20) | NO | | NULL | |
| comment | text | YES | | NULL | |
| url | text | NO | | NULL | |
| status | varchar(255) | YES | | NULL | |
+-----------------+--------------+------+-----+-------------------+----------------+
8 rows in set (0.00 sec)
|
| |
|
|
|
|
|
|
|
для: lgar
(27.02.2012 в 17:26)
| | А, так вам точка нужна? Тогда вообще говоря и ваш первый вариант должен работать, если не работает то используйте такой
$ver = mysql_query("INSERT INTO lgar (title, datetime_insert, datetime, datetime_close, url, comment, status) VALUES ('$title',
NULL, $datetime, '{$day}.{$month}', '$url', '$comment', $status);");
| или такой (впрочем не советую - плохо читаемый) | |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 17:30)
| | Мне б хотелось получить дату 22.2 Точка бы не нужна была, но mktime принимает в месяце значения 1,2,3 в качестве месяца, поэтому понятного стандарта не выйдети типа годмесяцдень. | |
|
|
|
|
|
|
|
для: lgar
(27.02.2012 в 17:41)
| | >Мне б хотелось получить дату 22.2
Получить где? | |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 17:30)
| | - так заработало. Как нибудь можно число 2 автоматом превратить в 02? | |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 17:30)
| | Решил вот так:
$datetime_close = <<<EOT
$day.$month $hour:$minute
EOT;
|
| |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 12:01)
| | '{$day}{$month}' так выводит 0. | |
|
|
|
|
|
|
|
для: lgar
(27.02.2012 в 17:38)
| | Так у вас даты datetime и datetime_close в формате bigint, а вы туда строки подставляете, конечно, они приводятся к 0, так как поле может хранить только числа. Тут придется тип поля менять, а вообще в этом есть необходимость? Почему бы при помощи mktime() не привести дату к UNIXSTAMP-формату?. | |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 17:53)
| | Да, совсем про тип таблиц забыл. Можно как-нибудь UNIXSTAMP-метку перевести в дату и время? | |
|
|
|
|
|
|
|
для: lgar
(27.02.2012 в 18:58)
| | Да, конечно, вам в PHP или в MySQL? В PHP удобно воспользоваться функцией date(), передав UNIXSTAMP-метку в качестве второго параметра. | |
|
|
|
|
|
|
|
для: cheops
(28.02.2012 в 00:41)
| | Спасибо, разобрался.
<?php
$date = date("r", 1330301400);
echo $date
?>
|
mysql> SELECT FROM_UNIXTIME(1330301400);
+---------------------------+
| FROM_UNIXTIME(1330301400) |
+---------------------------+
| 2012-02-27 04:10:00 |
+---------------------------+
1 row in set (0.02 sec)
mysql>
|
| |
|
|
|