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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: insert / несколько переменных
 
 автор: lgar   (27.02.2012 в 11:43)   письмо автору
 
 

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

$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)   письмо автору
 
   для: 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);");

  Ответить  
 
 автор: lgar   (27.02.2012 в 12:18)   письмо автору
 
   для: cheops   (27.02.2012 в 12:01)
 

Спасибо, в таком формате ".$day."".$month." как точку поставить между переменными?

".$day.""."".$month."
- так не работает.

  Ответить  
 
 автор: cheops   (27.02.2012 в 12:58)   письмо автору
 
   для: lgar   (27.02.2012 в 12:18)
 

А зачем вам такое нагромождение? Поступите проще:
".$day.$month."

  Ответить  
 
 автор: lgar   (27.02.2012 в 17:26)   письмо автору
 
   для: 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)

  Ответить  
 
 автор: cheops   (27.02.2012 в 17:30)   письмо автору
 
   для: 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);");
или такой (впрочем не советую - плохо читаемый)
".$day.".".$month."

  Ответить  
 
 автор: lgar   (27.02.2012 в 17:41)   письмо автору
 
   для: cheops   (27.02.2012 в 17:30)
 

Мне б хотелось получить дату 22.2 Точка бы не нужна была, но mktime принимает в месяце значения 1,2,3 в качестве месяца, поэтому понятного стандарта не выйдети типа годмесяцдень.

  Ответить  
 
 автор: cheops   (27.02.2012 в 17:53)   письмо автору
 
   для: lgar   (27.02.2012 в 17:41)
 

>Мне б хотелось получить дату 22.2
Получить где?

  Ответить  
 
 автор: lgar   (27.02.2012 в 18:11)   письмо автору
 
   для: cheops   (27.02.2012 в 17:30)
 

".$day.".".$month."
- так заработало. Как нибудь можно число 2 автоматом превратить в 02?

  Ответить  
 
 автор: lgar   (27.02.2012 в 18:56)   письмо автору
 
   для: cheops   (27.02.2012 в 17:30)
 

Решил вот так:


$datetime_close = <<<EOT
$day.$month $hour:$minute
EOT;

  Ответить  
 
 автор: lgar   (27.02.2012 в 17:38)   письмо автору
 
   для: cheops   (27.02.2012 в 12:01)
 

'{$day}{$month}' так выводит 0.

  Ответить  
 
 автор: cheops   (27.02.2012 в 17:53)   письмо автору
 
   для: lgar   (27.02.2012 в 17:38)
 

Так у вас даты datetime и datetime_close в формате bigint, а вы туда строки подставляете, конечно, они приводятся к 0, так как поле может хранить только числа. Тут придется тип поля менять, а вообще в этом есть необходимость? Почему бы при помощи mktime() не привести дату к UNIXSTAMP-формату?.

  Ответить  
 
 автор: lgar   (27.02.2012 в 18:58)   письмо автору
 
   для: cheops   (27.02.2012 в 17:53)
 

Да, совсем про тип таблиц забыл. Можно как-нибудь UNIXSTAMP-метку перевести в дату и время?

  Ответить  
 
 автор: cheops   (28.02.2012 в 00:41)   письмо автору
 
   для: lgar   (27.02.2012 в 18:58)
 

Да, конечно, вам в PHP или в MySQL? В PHP удобно воспользоваться функцией date(), передав UNIXSTAMP-метку в качестве второго параметра.

  Ответить  
 
 автор: lgar   (28.02.2012 в 11:15)   письмо автору
 
   для: 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>   

  Ответить  
Rambler's Top100
вверх

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