Дата при регистрация

adrian

Registered
Можете ли да ми кажете какъв тип трябва да е полето за дата date, timestamp...? Искам да го направя като някой се регистрира, заедно с другите данни, който се записват в таблицата (парола, потребител и т.н) да се записва и дата на регистрацията под формат 01 Месец Година, 00:00:00. И как трябва да се направи заявката ?
 

vladislav

Registered
ми и TEXT и VARCHAR и TIMESTAMP може да е. При мен лично е VARCHAR но и с TEXT съм пробвал и става. За TIMESTAMP не съм сигурен защото нещо ми правеше проблеми преди записваше само 000000 :wink:
 

jooorooo

Registered
vladislav каза:
ми и TEXT и VARCHAR и TIMESTAMP може да е. При мен лично е VARCHAR но и с TEXT съм пробвал и става. За TIMESTAMP не съм сигурен защото нещо ми правеше проблеми преди записваше само 000000 :wink:


ползвай текст, варчар.. и си го направи с date()

http://www.php.net/manual/en/function.date.php
 

adrian

Registered
Мерси и на двамата, питах защото го направих с date(), обаче като полето беше date или timestamp илизаха само нули. С text стана перфектно :)
 

jooorooo

Registered
за да ползваш datetime , създаваш нещо такова:

date datetime NOT NULL default '0000-00-00 00:00:00',

и записа ще става така:

$sql = "INSERT INTO data (date) VALUES (NOW())";
 

adrian

Registered
jooorooo каза:
за да ползваш datetime , създаваш нещо такова:

date datetime NOT NULL default '0000-00-00 00:00:00',

и записа ще става така:

$sql = "INSERT INTO data (date) VALUES (NOW())";

Ще го имам в предвид, но за сега мисля, че поле text перфектно ме устройва :)
 

Slavei

Registered
adrian каза:
jooorooo каза:
за да ползваш datetime , създаваш нещо такова:

date datetime NOT NULL default '0000-00-00 00:00:00',

и записа ще става така:

$sql = "INSERT INTO data (date) VALUES (NOW())";

Ще го имам в предвид, но за сега мисля, че поле text перфектно ме устройва :)

За момента може да те устройва датата да ти е стринг и да си гледаш кой кога се е регнал, но за в бъдеще има голяма вероятност да береш ядове.

Ще дам най елементарният пример за който се сещам: Я си представи, че искаш да селектираш само юзерите, регистирали се през текущия месец? Как ще стане, като датата ти е стринг???
 

adrian

Registered
Slavei каза:
adrian каза:
jooorooo каза:
за да ползваш datetime , създаваш нещо такова:

date datetime NOT NULL default '0000-00-00 00:00:00',

и записа ще става така:

$sql = "INSERT INTO data (date) VALUES (NOW())";

Ще го имам в предвид, но за сега мисля, че поле text перфектно ме устройва :)

За момента може да те устройва датата да ти е стринг и да си гледаш кой кога се е регнал, но за в бъдеще има голяма вероятност да береш ядове.

Ще дам най елементарният пример за който се сещам: Я си представи, че искаш да селектираш само юзерите, регистирали се през текущия месец? Как ще стане, като датата ти е стринг???

Еее добре де, за няма и 1 час ме разобеди...ще го оправя :)
 

adrian

Registered
jooorooo каза:
за да ползваш datetime , създаваш нещо такова:

date datetime NOT NULL default '0000-00-00 00:00:00',

и записа ще става така:

$sql = "INSERT INTO data (date) VALUES (NOW())";

Може ли малко повече обяснения.
Код:
  date datetime NOT NULL default '0000-00-00 00:00:00',

Го пиша в sql, за да създам поле в базата данни ?

И после идва по-големия ми въпрос (now()) какво е и как да го направя да ми записва неща в базата данни?
 

jooorooo

Registered
date datetime NOT NULL default '0000-00-00 00:00:00', така трябва да ти изглежда реда на дата в mysql.


примерно имаш една форма за регистрация:

име
парола
емаил

записа ще е следния:

$sql = "INSERT INTO users (user, pass, email, date) VALUES ($user, $pass, $email, NOW())";

името, паролата и емаила се взимат от формата, а NOW() записва текущата дата и час в зададения формат: '0000-00-00 00:00:00'

базата ще изглежда така:

Код:
CREATE TABLE `users` ( 
`id` int(8) NOT NULL auto_increment, 
`user` varchar(250) default NULL, 
`pass` varchar(250) default NULL, 
`email` varchar(250) default NULL, 
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`) 
);
 

adrian

Registered
Дава ми тази грешка

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\Programi\xampp\htdocs\site\reg_form.php on line 26

Parse error: syntax error, unexpected ';' in C:\Programi\xampp\htdocs\site\reg_form.php on line 26

reg_form.php
Код:
<?php

 	$self = $_SERVER['PHP_SELF']; 
	$potrebitel = $_POST['potrebitel']; 
	$parola = $_POST['parola']; 
	$otn_parola = $_POST['otn_parola']; 
	$real_name = $_POST['real_name']; 
	$familia = $_POST['familia']; 
	$email = $_POST['email']; 
	$godini = $_POST['godini']; 

	$user_level = 1;

	if( (!$potrebitel) ) { echo("Моля въведете потребител. <a href=\"register.php\">Обратно</а>"); }
	if( (!$real_name) ) { echo("Моля въведете истинско име. <a href=\"register.php\">Обратно</а>"); }
	if( (!$familia) ) { echo("Моля въведете фамилия. <a href=\"register.php\">Обратно</а>"); }
	if( (!$email) ) { echo("Моля въведете емайл адрес. <a href=\"register.php\">Обратно</а>"); }
	if( $parola != $otn_parola ) { echo("Втората парола не съвпада с първата. <a href=\"register.php\">Обратно</а>"); }


	include("config.php"); 

	mysql_select_db(site); 
		$zaiavka = "insert register( potrebitel, parola, real_name, familia, email, godini,user_level, date_reg"; 
				values( \"$potrebitel\", md5(\"$parola\"), \"$real_name\", \"$familia\", \"$email\", \"$godini\", \"$user_level\",NOW())"; 

		$rez = mysql_query( $zaiavka, $db_conn);

		if($rez) { 
			echo("Новият потребител $potrebitel е създаден успешно. За да се логнете натиснете <a href=\"index.php\">тук</а>.");
		}
?>

SQL
Код:
 alter table register add date_reg datetime NOT NULL default '0000-00-00 00:00:00';
 

jooorooo

Registered
$zaiavka = "insert register( potrebitel, parola, real_name, familia, email, godini,user_level, date_reg";
values( \"$potrebitel\", md5(\"$parola\"), \"$real_name\", \"$familia\", \"$email\", \"$godini\", \"$user_level\",NOW())";

date_reg"; <--грешка..

date_reg) <-- вярно

$zaiavka = "insert register( potrebitel, parola, real_name, familia, email, godini,user_level, date_reg)
values( \"$potrebitel\", md5(\"$parola\"), \"$real_name\", \"$familia\", \"$email\", \"$godini\", \"$user_level\",NOW())";
 

adrian

Registered
Мерси, така стана. То и аз незнам къде гледам, ама бързам за училище и затова направо copy и paste дадох, без да гледам изобщо :)
 

Горе