System komentarzy pod artykułami


(Blask Ognia) #1

Zwracam się do was z pytaniem o sposób w jaki mozna wykonać to co poniżej opisałem:

Mam wykupione konto na płatnym serwerze ze sporej wielkości bazą danych.

Chodzi mi o stworzenie systemu komentarzy działającego na podobnych zasadach jak ten w systemie eblog.pl .

Strona główna to artykóły, których ilość ograniczona byłaby do powiedzmy 10.

Każda notka miałaby być związana z odpowiednimi komentarzami.

Po kliknięciu na link "Komentuj (2)" (gdzie 2 to lista komentarzy już dodanych) następowałoby przekirowanie do strony, w której widoczny byłby wyłacznie komentowany artykół wraz z lista komentarzy i polami do dodawania kolejnego.

Podsumowując zależy mi na kilku waznych funkcjach jak:

  • ograniczenie ilości artykółów do 10 ostatnich na głównej

  • możliwośc obejżenia artykółów z danego miesiąca (archiwum)

  • komentowanie artykółów w opisany wyżej sposób.

Zastanawiam się jak to rozwiązać. Podejżewam, że tak teksty artykółów jak i komenatrzy wraz z odpowiednimi danymi muszą znaleźć się w bazie danych Mysql, ale jak?

Z górwy wielkie dzięki za pomoc...


(Balon) #2

W zapytaniu "LIMIT 0, 10"

To poprostu w tabeli z artykulami umieszczasz dodatkowe pole id_artykulu w ktorym znajduje sie ID artyukulu

CREATE TABLE `komentarze` (

  `id` int(11) NOT NULL auto_increment,

  `id_artykulu` int(11) NOT NULL default '0',

  `autor` text NOT NULL,

  `data` varchar(20) NOT NULL,

  `tresc` text NOT NULL,

  PRIMARY KEY (`id`),

  FULLTEXT KEY `autor` (`autor`,`tresc`)

) TYPE=MyISAM

Czyli jak chcesz obejrzec tylko jeden artykul to tworzysz sobie elegancki plik wiecej.php w ktorym masz np tak

<?

if (isset(is_numeric($_GET['id']))

{

	## Tutaj wyswietlasz artykul


	## A nastepnie tworzysz komentarze


	$zapytanie = "SELECT * FROM `komentarze` WHERE id_news = $id ORDER BY `id`";

	$query = mysql_query($zapytanie);

	while($row=mysql_fetch_array ($wykonaj)) 


	{

		echo "".$row['autor']." // ".date('Y.m.d H:i:s', $row[data])."
".nl2br(stripslashes($row[tresc]))."
";

		$i++;

	}


?>

Zeby pobrac ilosc komentarzy robisz takie zapytanie

<?

$id_k = $row[id];

$zapytanie_k = "SELECT * FROM `komentarze` where id_artykulu = $id_k";

$wykonaj_k = mysql_query ($zapytanie_k);

$ile_k = mysql_num_rows($wykonaj_k);

echo "


Komentarze (".$ile_k.") "; [/code]

[code]<? #################### # Dodawanie komentów #################### if($send=='Skomentuj') { if (!isset($id) && !isset($tresc)) { echo " Nie wypełniłeś wszystkich pól."; echo ""; exit; } ########### SPRAWDZANIE TRESCI ############# $tresc = strip_tags($tresc); $autor = strip_tags($autor); $tresc = trim($tresc); $autor = trim($autor); if (empty($tresc)) { echo 'Nie podałeś treści'; exit; } if (empty($autor)) { $autor = 'Gość'; } $tresc = nl2br($tresc); $time = time(); $zapytanie = "INSERT INTO komentarze values ('', '$_GET[id]', '$autor', '$time', '$tresc')"; $wykonaj = mysql_query ($zapytanie); if (!$wykonaj) { echo " Komentarz nie mógł zostać dodany"; echo ""; } header ('Location: index.php?co=wiecej&id='.$id.''); } ?> Nick:  Tresc:   

Radze najpierw nauczyc sie php bo bez podstaw nie zrozumiesz mysql.

P.S. Te wszystkie kod sa przykladowe i musisz sobei je zmienic wedlug uznania. Zaczerpnelem je z mojego skryptu NEWSCENTER ktory aktualnie pisze :wink: Za jakis tydzien oddam go do uzytku i bedziecie mogli zobaczyc co i jak w razie watpliwosci :wink:


(Blask Ognia) #3

Dzieki Ci wielkie! :- )