a później w kodzie nawet nie ma linijki z sql zawierającym polecenie INSERT. Twój kod wygląda tak jakbyś chciał jedynie edytować już istniejące komentarze lub posiadać tylko jeden komentarz, który będzie się zmieniał. U ciebie w kodzie wszystko jest dobrze do linii 13. Później w linii 14 w niewiadomym celu pobierasz z bazy id_komentarz, link_komentarz pierwszego komentarza by w linii 25 podmienić go na podane dane…? Nierozumiem twojego toku myślenia.
jak chcesz dodać czas to użyj funkcji time() ewentualnie odpowiedniego formatu korzystając funckji date() (to w zaleźności co masz w bazie ale time powinien zadziałać)
Można to również zrobić w mysql (oba rozwiązanania są prawidłowe). Można to zrobić nie edytując aktualnego skryptu a jedynie zmieniając domyślną zawartość pola id w mysql tak aby zawierał datę dodania, czyli CURRENT_TIMESTAMP oraz usuwając AI (przy założeniu że twoja strona nie będzie ąż tak bardzo popularna by w jednej sekundzie 2 użytkowników dodawało komentarz)
oczywiście że działa Co do dodawania daty to można to zrobić na kilka sposobów
Dodajesz do tej swojej tabeli pole o nazwie np. czas_komentarz, typ ustawiasz jako TIMESTAMP, a wartość domyślną jako CURRENT_TIMESTAMP. Przy dodawaniu danych możesz je wymienić tak samo jak id_komentarz czyli z wartością NULL a mysql sam doda datę w domyślnym formacie
if(isset($_POST[‘opis_komentarz’])){
$autor=addslashes(htmlspecialchars($_POST['nick_komentarz']));;
$tresc=addslashes(htmlspecialchars($_POST['opis_komentarz']));
if(!mysql_query("INSERT INTO `komentarze` (`id_komentarz`,`czas_komentarz`,`nick_komentarz`,`opis_komentarz`) VALUES (NULL, NULL, '$autor', '$tresc');")){
echo 'Nieudalo sie dodac komentarza.';
}else{
echo 'Twoj komentarz zostal dodany.';
}
echo '';
}
$mysql=mysql_query(“SELECT nick_komentarz,czas_komentarz,opis_komentarz FROM komentarze LIMIT 20”);
while($row=mysql_fetch_row($mysql)){
echo "$row[0]: ($row[1])
$row[2]
\n";
}
2.Drugi sposób to zapisanie wartości time() i przekazanie jej w bazie, przy odczycie użyj funkcji date() by określić format
Kod jest poprawny, gdyż w moim przypadku działa. Problem leży pewnie po twojej stronie, a konkretnie po stronei twojej bazy danych a raczej jej struktury.
CREATE TABLE `komentarze` (
`id_komentarz` int(11) NOT NULL AUTO_INCREMENT,
`czas_komentarz` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`nick_komentarz` varchar(30) NOT NULL,
`opis_komentarz` varchar(255) NOT NULL,
PRIMARY KEY (`id_komentarz`)
)
Oczywiście chodzi mi tutaj jedynie o pole czas_komentarz, lecz na wszelki wypadek pokazuję całość.