Коментари как ще стане.

simost

Registered
Значи искам да направя следната работа ;д имам таблица

news

полетата в нея са

id
novini
poblikuval

новините ги вадя по следния начин http://localhost/index.php?a=news&id=1

Тоест първата новина и искам да направя да има и коментари към новината но не знам как.. като пиша коментар примерно да се записва в таблицата

comments

полетата в нея да са примерно

id
iduser id-то на потребителя побликувал новината от таблицата users
idnews номера на новината от таблицата news
comment и самия коментар

и от долу под новината да излизат коментарите и да има едно поле за побликуване :)

Надявам се да сте ме разбрали.
 
Да това го гледах но няма линк да сваля урока да си го сложа в моя сайт това с коментарите :(

А и нали искам да направя следното нещо като някой потребител побликува коментар да му се записва id-то в таблицата comments полето iduser и от това поле да намира потребителското име на потребителя и да го вади :)
 
Ами да, ако изгледаш урока внимателно мисля че ще можеш да си го направиш без проблем.
 
Ако го пишеше от самото начало да можеше да разбера но така не мога да го пиша кода той не показва всички файлове а само главните и в крайния код немога да го видя защото не е скролнал най долу :Д
 
news.php, инклудваш го в index.php:
Код:
<?
$result = mysql_query("SELECT * FROM news ORDER BY id DESC") or die (mysql_error());
while($data = mysql_fetch_assoc($result)) {
$id = $data['id'];
$rl = mysql_query('SELECT COUNT(*) as ctn FROM `com_news` WHERE novina='.$id);
$ruw = mysql_fetch_assoc($rl);
$comments = $ruw['ctn'];
echo "<div class='article'><h4 style='font-size:15px;'>$data[title]</h4><br />
<b style='style='font-size:12px;'>$data[text]</b><br /><br />
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tbody><tr><td width='50%'><b style='color: rgb(255, 255, 255); font-size:11px;'>Публикувано на: $data[date]</b></td><td align='right' width='50%'><b style='color: rgb(255, 255, 255); font-size:11px;'>Коментари: <b><a href='select_news.php?id=$data[id]'>";
if($comments == 0){

echo "Няма коментари";
}
else
{
echo "$comments";
}
echo"</a></b>

</b></td></tr>
</tbody></table>
</div>";
}
?>

Страницата за коментари, страницата я "кръсти" select_news.php:

Код:
<?
error_reporting(0); 
session_start();
$id = $_GET['id'];

if ($id) {
$zaqvka = mysql_query("SELECT * FROM `news` WHERE id='$id'");
$res = mysql_fetch_assoc($zaqvka);
if($id != $res[id]){
echo "Няма такава новина!";
}
else
{
echo "асд";
$sql = mysql_query("SELECT * FROM news WHERE id='$id'") or die (mysql_error());
$data = mysql_fetch_assoc($sql);
echo "<div class='article'><h4 style='font-size:15px;'>$data[title]</h4><br />
<b style='style='font-size:12px;'>$data[text]</b><br /><br />
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tbody><tr><td width='50%'><b style='color: rgb(255, 255, 255); font-size:11px;'>Публикувано на: $data[date]</b></td></td></tr></tbody></table></div>";
}
}
?>

<form method='post' action=''>
<table width='400'><tr><td>
Име:</td><td><input name='avtor' type='text' class='style-focus' size='25' maxlength='20' /></td></tr>
<?
$id = $data['id'];
$rl = mysql_query('SELECT COUNT(*) as ctn FROM `com_news` WHERE novina='.$id);
$ruw = mysql_fetch_assoc($rl);
$comments = $ruw['ctn'];
echo "
<tr><td></td><td>";
if($comments == 0){

echo "все още не са коментирали новината!";
}
echo"<td></tr><br />";

?>
<tr><td>Коментар:</td><td><textarea name='komentar' class='style-focus' cols='36' rows='6'>
</textarea></td></tr>
<tr><td colspan='2'><input type='submit' name='submit' value='Добави коментара' class='style-focus' /></td></tr>
</table>
</form>

<br/>

<?

if ($_POST['submit']) {
$avtor = htmlspecialchars($_POST['avtor']);
$komentar = htmlspecialchars($_POST['komentar']);
$date = date("d.M.Y, H:i");
	if($avtor == NULL || $komentar == NULL){
		echo "<div class='error'><b>Всички полета са задължителни!!!</b></div>";
	}
	else{
$sql = "INSERT INTO com_news (`novina`, `avtor`, `date`, `komentar`) VALUES ('$id', '$avtor', '$date', '$komentar')";
mysql_query($sql) or die (mysql_error());
echo "<meta http-equiv='refresh' content='0;url=select_news.php?id=$data[id]'>";
echo "Коментара е добавен успешно.";
}
}
$sql = "SELECT * FROM com_news WHERE novina='$id' ORDER BY id DESC";
$result = mysql_query($sql) or die (mysql_error());
while($com = mysql_fetch_assoc($result)) {
echo "<div style='background-color: #999; border: 1px solid #222; color:#000; padding:5px; font: 13px tahoma;'>
<b>$com[avtor]</b> каза: <span style='float:right; font: 11px tahoma;'>$com[date]</span><br/><hr size='1' color='#222' />
$com[komentar]</div><br />";
}
?>

Един config файл:

Код:
<?php
$dbhost="localhost"; // хост
$dbuser="godlike_cs_info"; //Потребителското име на базата данни
$dbpass="220299"; //Паролата на базата данни
$dbname="godlike_cs_info"; //Името на базата данни
mysql_connect($dbhost,$dbuser,$dbpass) or die ("Не мога да се свържа с хоста."); //Свързване с базата данни.
mysql_select_db($dbname) or die("Не мога да открия БД: $dbname"); //Избиране на БД-то.
mysql_query("SET names cp1251"); //Задаване на Енкодинг на резултатите от бд-то.
?>

И накрая SQL:
[sql]DROP TABLE IF EXISTS news;
CREATE TABLE news (
id int(255) NOT NULL auto_increment,
title varchar(255) NOT NULL,
text text NOT NULL,
avtor varchar(255) NOT NULL,
date varchar(50) NOT NULL,
PRIMARY KEY (id)
);

DROP TABLE IF EXISTS com_news;
CREATE TABLE com_news (
id int(12) NOT NULL auto_increment,
novina varchar(12) NOT NULL,
avtor varchar(255) NOT NULL,
komentar text NOT NULL,
date varchar(50) NOT NULL,
PRIMARY KEY (id)
);[/sql]

Лично съм го тествал и работи :?:
Надявам се, че съм помогнал !
Успех !
 

Back
Горе