Baza danych do dodawania komentarzy w php

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 ' * * *

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ą.

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

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:

PhpMyAdmin pisze że jest błąd ;/

bo to kod php. Usuń kropki.

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 ' * * *

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:

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 ’


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']));;

;;

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

Do czego ten komentarz???

Do np. dodania komentarza pod zdjęciem

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:

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

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.

<?php