Как да сложа Timestamp

eddy

Registered
Използвам този код и не съм сигурен даже дали трябва да е така.
Вади ми това:

Unknown column 'timestamp' in 'field list'

Да защото найстина няма такава колона опитвам се да е сложа през пхп файла и да е изкара и да се сложи тоя timestamp.

Трябва ми за да може човек от едно ИП да пуска коментари само минимум през 5 сек.

PHP:
<?php
include "config.php"; //Инклудваме конфиг файла!

$ip = $_SERVER['REMOTE_ADDR'];
$timestamp = date("s");

$sq = "INSERT INTO comments (ip, timestamp) VALUES ('$ip', $timestamp)";
mysql_query($sq) or die (mysql_error());

$qw = mysql_query("SELECT * FROM `comments` WHERE `ip` = '{$_SERVER['REMOTE_ADDR']}'");

$roww = mysql_fetch_assoc($qw);
if(time()+5 <= $roww['timestamp']){

if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!

}
else{
    
}
 
Еми добави още едно поле в таблицата и го кръсти timestamp или по някакъв друг начин. И датата в него го записваш с NOW() на MySQL.


Влизаш в phpMyAdmin, даваш на таблицата и отдолу има да добавиш поле.
 
Добре в базата дани направих поле timestamp и попълних type като му задодх timestamp.Добре появи се , обаче ето как ми излиза дата в базата дани на timestamp : 0000-00-00 00:00:00 . Преполагам защото от пхп нещо не му задава както трябва.Ето ми го кода:


$ip = $_SERVER['REMOTE_ADDR'];
$sq = "INSERT INTO comments (ip, timestamp) VALUES ('$ip', NOW())";
mysql_query($sq) or die (mysql_error());
$qw = mysql_query("SELECT * FROM `comments` WHERE `ip` = '{$_SERVER['REMOTE_ADDR']}'");

$roww = mysql_fetch_assoc($qw);
if(time()+5 <= $roww['timestamp']){

if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!

}
else{

}
 
PHP:
$ip = $_SERVER['REMOTE_ADDR'];
$sq = "INSERT INTO `comments`(`ip`, `timestamp`) VALUES('{$ip}', 'NOW()')";
mysql_query($sq) or die (mysql_error());
$qw = mysql_query("SELECT * FROM `comments` WHERE `ip` = '{$_SERVER['REMOTE_ADDR']}'");

$roww = mysql_fetch_assoc($qw);
if(time()+5 <= $roww['timestamp']){

if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!

}
else{

}
 
сега не ми добавя нищо като коментари не ми излиза грешка нищо , това ми е кода.

Код:
<?php
include "config.php"; //Инклудваме конфиг файла!

$ip = $_SERVER['REMOTE_ADDR'];
$sq = "INSERT INTO `comments`(`ip`, `timestamp`) VALUES('{$ip}', 'NOW()')";
mysql_query($sq) or die (mysql_error());
$qw = mysql_query("SELECT * FROM `comments` WHERE `ip` = '{$_SERVER['REMOTE_ADDR']}'");

$roww = mysql_fetch_assoc($qw);
if(time()+5 <= $roww['timestamp']){

if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!

}
else{

}


$avtor = htmlspecialchars(addslashes($_POST['avtor'])); //Взимаме написаното от полето за въвеждане на автор и добавяме малко защити!
$komentar = htmlspecialchars(addslashes($_POST['komentar'])); //Взимаме написаното от полето за въвеждане на коментар и добавяме малко защити!
$data = date("d.F.y / H:i"); //Взимаме датата и часът на вавеждането на коментара!
if ($avtor == NULL || $komentar == NULL) { //Правим провекра дали полетата са празни!
echo "Моля попълни полетата!"; //И ако са празни извеждаме грешка!
} else {
$sql = "INSERT INTO comments (avtor, komentar, data, ip, timestamp) VALUES ('$avtor', '$komentar', '$data', '$ip', $timestamp)"; //Ако всичко е попълнено както трябва въвждаме данните в Базата данни!
  

mysql_query("SET NAMES utf8");
mysql_query($sql) or die (mysql_error()); //Испълняваме заявката!
header("LOCATION: galeriq.php?id=$id"); //Този код прави така, че когато рефрешнете страницата след добавянето на коментар да не добавя коментара на ново! 


}
}
?>
 
И на varchar и на int не ми вади нищо само там 2 точки които пред тях трябва да седи автор след тях коментар и дата.Тоест нищо.Всейноче кода работи само до преди да почне $avtor .
 
Така?
PHP:
<?php
include "config.php"; //Инклудваме конфиг файла!

$ip = $_SERVER['REMOTE_ADDR'];
$sq = "INSERT INTO `comments`(`ip`, `timestamp`) VALUES('{$ip}', 'NOW()')";
mysql_query($sq) or die (mysql_error());
$qw = mysql_query("SELECT * FROM `comments` WHERE `ip` = '{$_SERVER['REMOTE_ADDR']}'");

$roww = mysql_fetch_assoc($qw);
if(time()+5 <= $roww['timestamp']){

if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!

}
else{

}


$avtor = htmlspecialchars(addslashes($_POST['avtor'])); //Взимаме написаното от полето за въвеждане на автор и добавяме малко защити!
$komentar = htmlspecialchars(addslashes($_POST['komentar'])); //Взимаме написаното от полето за въвеждане на коментар и добавяме малко защити!
$data = date("d.F.y / H:i"); //Взимаме датата и часът на вавеждането на коментара!
if ($avtor == NULL || $komentar == NULL) { //Правим провекра дали полетата са празни!
echo "Моля попълни полетата!"; //И ако са празни извеждаме грешка!
} else {
$sql = "INSERT INTO comments (avtor, komentar, data, ip, timestamp) VALUES ('$avtor', '$komentar', '$data', $ip)"; //Ако всичко е попълнено както трябва въвждаме данните в Базата данни!
 

mysql_query("SET NAMES utf8");
mysql_query($sql) or die (mysql_error()); //Испълняваме заявката!
header("LOCATION: galeriq.php?id=$id"); //Този код прави така, че когато рефрешнете страницата след добавянето на коментар да не добавя коментара на ново!


}
}
?>
Какви точно параметри зададе на реда timestamp?
 
Значи в таблица comments където се складират всички неща като "автор" "ип" "дата" "коментар" "ид" направих поле "timestamp" точно както ми казахте параметирте са:

timestamp varchar(11) utf8_unicode_ci No None


Това го копирах.


type - а му е varchar

името - timestamp

кодировката - utf8_unicode_ci
 
В този случай като ти гледам заявките е добре всичките да ги направиш да могат да са празни, защото ти правиш 2 инсърта като добавяш различни колони.

Сега примерно първия ти инсърт искаш да полълниш само IP и TIMESTAMP, обаче другите ти полета изискват да са NOT NULL и там може да става грешката.
 

Back
Горе