Baza danych do dodawania komentarzy w php


(Terlalolek) #1

Witam. Mam taki skrypt php :

<?php $link=mysql_connect("xxx","yyy","zzz"); if(!$link){ error('Mysql error!'); } mysql_select_db("xxx"); if(isset($_POST['komentarz'])){ $autor=addslashes(htmlspecialchars($_POST['nick_komentarz']));; $tresc=addslashes(htmlspecialchars($_POST['opis_komentarz'])); if(!mysql_query("INSERT INTO `komentarz` (`id_komentarz`,`nick_komentarz`,`opis_komentarz`) VALUES (NULL, '$autor', '$tresc);")){ echo 'Nieudalo sie dodac komentarza.'; }else{ echo 'Twoj komentarz zostal dodany.'; } echo '



(Pablo_Wawa) #2

Poniżej kod w PHP tworzący tabelę komentarz do przechowywania komentarzy z przykładu:

<?php

  $sql='CREATE TABLE IF NOT EXISTS `komentarz` ('

        . ' `id_komentarz` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, '

        . ' `nick_komentarz` VARCHAR(128) COLLATE utf8_polish_ci NULL, '

        . ' `opis_komentarz` VARCHAR(1024) COLLATE utf8_polish_ci NULL, '

        . ' PRIMARY KEY (`id_komentarz`)'

        . ' )'

        . ' ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci';

  mysql_query($sql) or die(mysql_error());

?>

Przyjąłem kodowanie znaków w UTF-8.

Oczywiście tabela ta musi być tworzona w jakiejś bazie danych, którą musisz sobie utworzyć lub masz już ją daną.


(Terlamistrz) #3

Napisałem że chcem zrobić bazę danych tylko niewiem jak ...


(batmomobil) #4

Kolega wyżej już dał ci odpowiedż,w bazie danych tworzysz tabelę po przez zapytanie

CREATE TABLE IF NOT EXISTS `komentarz` ('

        . ' `id_komentarz` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, '

        . ' `nick_komentarz` VARCHAR(128) COLLATE utf8_polish_ci NULL, '

        . ' `opis_komentarz` VARCHAR(1024) COLLATE utf8_polish_ci NULL, '

        . ' PRIMARY KEY (`id_komentarz`)'

        . ' )'

        . ' ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci';

,zobacz post http://forum.dobreprogramy.pl/dodawanie-komentarzy-bazie-danych-blad-t426094.htmlmoże się przyda. :smiley:


(Terlamistrz) #5

PhpMyAdmin pisze że jest błąd ;/


(Konrad Kosowski) #6

bo to kod php. Usuń kropki.


(Terlamistrz) #7

Mam plik forumkomputer.php :

<?php $link=mysql_connect("xxx","yyy","zzz"); if(!$link){ error('Mysql error!'); } mysql_select_db("xxx"); if(isset($_POST['komentarz'])){ $autor=addslashes(htmlspecialchars($_POST['nick_komentarz']));; $tresc=addslashes(htmlspecialchars($_POST['opis_komentarz'])); if(!mysql_query("INSERT INTO `komentarz` (`id_komentarz`,`nick_komentarz`,`opis_komentarz`) VALUES (NULL, '$autor', '$tresc);")){ echo 'Nieudalo sie dodac komentarza.'; }else{ echo 'Twoj komentarz zostal dodany.'; } echo '



(batmomobil) #8

W bazie danych masz różne funkcje,między innymi sql i tam wykonujesz zapytanie.Daj takie zapytanie,próbowałem-działa

CREATE TABLE IF NOT EXISTS `komentarz`( 

         `id_komentarz` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, 

        `nick_komentarz` VARCHAR(128) COLLATE utf8_polish_ci NULL, 

        `opis_komentarz` VARCHAR(1024) COLLATE utf8_polish_ci NULL, 

        PRIMARY KEY (`id_komentarz`)

        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

:smiley:


(Terlamistrz) #9

Baza już działa :slight_smile: tylko mam jescze 1 pytanie czy tu niemusze już nic dopisać lub zamienić ? bo żaden komentarz się nie dodaje

<?php

$link=mysql_connect('localhost', 'root', '');

if(!$link){

error('Mysql error!');

}

mysql_select_db('test');

if(isset($_POST['komentarz'])){

$autor=addslashes(htmlspecialchars($_POST['autor']));;

$tresc=addslashes(htmlspecialchars($_POST['komentarz']));

if(!mysql_query("INSERT INTO komentarze (id,autor,tresc) VALUES (NULL, '$autor', '$tresc');")){

  echo 'Nieudalo sie dodac komentarza.';

}else{

  echo 'Twoj komentarz zostal dodany.';

}

echo '






(batmomobil) #10

Do czego są te komentarze???bo powinieneś pobierać id i przesyłać id danego elementu,czy czegoś tam.W bazie powinieneś w takiej sytuacji dodać jeszcze jedno pole,gdzie będziesz zapisywał to id danego komentarza.W tej linii jest błąd,jaki???

$autor=addslashes(htmlspecialchars($_POST['komentarz']));;

;;


(Terlamistrz) #11

"bo powinieneś pobierać id i przesyłać id danego elementu,czy czegoś tam" nie rozumiem


(batmomobil) #12

Do czego ten komentarz???


(Terlamistrz) #13

Do np. dodania komentarza pod zdjęciem


(batmomobil) #14

W takim razie to co pisałem wcześniej,tylko po chłopsku:wyświetlasz zdjęcie z bazy i pobierasz id tego zdjęcia(zmienna $id),pobraną zmienną zdjęcia wstawiasz do formularza i przesyłasz do bazy.

i sql

CREATE TABLE IF NOT EXISTS `komentarze` (

  `id` int(11) NOT NULL auto_increment,

  `czas_komentarz` varchar(20) character set utf8 collate utf8_bin default NULL,

  `nick_komentarz` varchar(30) NOT NULL,

  `opis_komentarz` varchar(255) NOT NULL,

  `id_zdjecia` varchar(20) character set utf8 collate utf8_polish_ci default NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

Wtedy będzie przypisywało komentarz danemu zdjęciu. :smiley:


(Terlamistrz) #15

A jak zrobić żeby dodawało się pod tym :



(batmomobil) #16

Z zapytania,gdzie wyświetlasz zdjęcia,pobierasz $id danego zdjęcia i wstawiasz do formularza:


i wyślij:

if(isset($_POST['komentarz'])){

   $autor=addslashes(htmlspecialchars($_POST['autor']));;

   $tresc=addslashes(htmlspecialchars($_POST['komentarz']));

 $id_fotki=addslashes(htmlspecialchars($_POST['id_zdjecia'])); if(!mysql_query("INSERT INTO `komentarze` (`id`,`autor`,`tresc`,`id_zdjecia`) VALUES (NULL, '$autor', '$tresc, '$id_fotki');")){

      echo 'Nieudalo sie dodac komentarza.';

   }else{

      echo 'Twoj komentarz zostal dodany.';

   }

   echo '';

}[/code]

i musisz mieć pole w bazie id_zdjecia.


(jacko1998) #17
<?php