Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: комменты с модерацией

Сообщения:  [1-10]   [11-15] 

 
 автор: ladan   (12.12.2011 в 19:56)   письмо автору
 
   для: usa   (12.12.2011 в 19:40)
 

а вы Денвером пользуетесь? Быть может еще из-за этого. У меня phpmyadmin. Ошибок быть не должно.

программа думает, что $a = mysql_query("SELECT * FROM coment WHERE moderator=1") не удовлетворяет запросу, вот и ошибка. Либо у вас таблица не создана или название не то, либо у вас поле moderator отсутствует в таблице

  Ответить  
 
 автор: usa   (12.12.2011 в 19:40)   письмо автору
 
   для: ladan   (12.12.2011 в 18:56)
 

так где косяк то?

  Ответить  
 
 автор: ladan   (12.12.2011 в 18:56)   письмо автору
 
   для: usa   (12.12.2011 в 18:52)
 

кажется ясно почему у вас ошибка, пропишите



$a = mysql_query("SELECT * FROM coment WHERE moderator=1"); /*вытаскиваются все комменты с полем moderator=1*/  


/*  проверка */
if($a) {echo "Выборка из таблицы прошла успешно!";} else {exit("Выборка не прошла, косяк в запросе");} 
/*  конец проверки */






if(@mysql_num_rows($a) < 1) {echo "<p>Комментариев пока никто не оставил</p>";} /*когда в базе нет комментов с полем moderator=1*/  
$b = mysql_fetch_array($a); /*формируем массив*/ 



если выведется, что выборка прошла успешно, то ошибок быть не должно, а иначе надо... запрос поменять, наверняка у вас где-то косячок :) У меня все работает. Исходники- два файла + бд

  Ответить  
 
 автор: usa   (12.12.2011 в 18:52)   письмо автору
 
   для: ladan   (12.12.2011 в 18:38)
 

какие исходники? :)
они уже приведены выше.

  Ответить  
 
 автор: ladan   (12.12.2011 в 18:38)   письмо автору
 
   для: usa   (12.12.2011 в 18:15)
 

вообще беспонятия как такое может быть :) Скажите вашу почту я отправлю исходники, установите и посмотрите где у вас были ошибки

  Ответить  
 
 автор: usa   (12.12.2011 в 18:15)   письмо автору
 
   для: ladan   (12.12.2011 в 17:09)
 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in... on line 218

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /... line 223

218 строчка
$b = mysql_fetch_array($a); /*формируем массив*/  

223 строчка
while($b = mysql_fetch_array($a));/*выводим все комментарии в цикле, удовлетворяющие запросу*/

  Ответить  
 
 автор: ladan   (12.12.2011 в 17:09)   письмо автору
 
   для: usa   (12.12.2011 в 15:56)
 

отредактировал код

первая часть


<? 
mysql_connect
("localhost""user""password");
mysql_select_db("anapa");
mysql_query("SET NAMES utf8");

$a mysql_query("SELECT * FROM coment WHERE moderator=1"); /*вытаскиваются все комменты с полем moderator=1*/ 
if(@mysql_num_rows($a) < 1) {echo "<p>Комментариев пока никто не оставил</p>";} /*когда в базе нет комментов с полем moderator=1*/ 
$b mysql_fetch_array($a); /*формируем массив*/ 
 
do 

printf("<div>%s<br>%s<br>%s</div><br>"$b['author'], $b['date'], $b['text'] );  

while(
$b mysql_fetch_array($a));/*выводим все комментарии в цикле, удовлетворяющие запросу*/ 
?> 
<form action="table2.php" method="post"> 
Ваше имя: <input type="text" name="author"> <br>
Текст: <textarea name='text' cols='45' rows='5'></textarea> <br>
<input type='submit' value='Отправить'> 
</form>


вторая часть - обработчик

<?  
mysql_connect
("localhost""user""password");
mysql_select_db("anapa");
mysql_query("SET NAMES utf8");

/*Небольшая проверка*/  
if(empty($_POST['author']) or empty($_POST['text'])) {exit("<p>Заполните все необходимые поля!</p>");}  

$author $_POST['author'];
$text $_POST['text']; 
$date date("Y-m-d");  

/*Добавляем комментарий*/  
$b mysql_query("INSERT INTO coment (author,text, date) VALUES('$author','$text','$date')");
if(
$b) {echo "<p>Ваш комментарий успешно добавился в базу и отправлен на модерацию администратору!</p>";}  
else {exit(
"<p>По каким-то причинам комментарий не смог добавиться, попробуйте позже!</p>");}  

/*Отправляем письмо админу*/  
$mail "11klass@mail.ru";  
$subject "Новый комментарий на сайте";  
$text "Пишет: $author \n Текст: $text";
$utf "content-type:text/plain; charset=utf-8\r\n";  
mail($mail,$subject,$text,$utf);  
?>


заработать должно 100%, если все же не получится, я вам скину по почте исходники


Если вам нужно выводить все комментарии к определенным заметкам:
загружается заметка, вытаскиваем из нее id и передаем в запрос
$a = mysql_query("SELECT * FROM coment WHERE moderator=1 AND zametka='$id'"); /*вытаскиваются все комменты с полем moderator=1 и id нужно заметки*/

В таблице с комментами нужно еще одно поле создать- zametka

передаем скрытому элементу в форме <input type="hidden" name="<? echo $id ?>">
потом как человек жмет "комментировать", в обработчик уже должен быть другой запрос $b = mysql_query("INSERT INTO coment (author,text, date, zametka) VALUES('$author','$text','$date','$id')");

  Ответить  
 
 автор: usa   (12.12.2011 в 15:56)   письмо автору
 
   для: ladan   (12.12.2011 в 10:59)
 

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/klassn/public_html/comment_pu.php on line 8

вот она 8 строка
$b = mysql_query("INSERT INTO comment_pu (author,text, date) VALUES 


привожу код целиком
<? 
/*Небольшая проверка*/ 
if(empty($_POST['author']) or empty($_POST['text'])) {exit("<p>Заполните все необходимые поля!</p>");} 

$date date("Y-m-d"); 

/*Добавляем комментарий*/ 
$b mysql_query("INSERT INTO comment_pu (author,text, date) VALUES ('$_POST['author']')','$_POST['text']')','$date',"); 
if(
$b) {echo "<p>Ваш комментарий успешно добавился в базу и отправлен на модерацию администратору!</p>";} 
else {exit(
"<p>По каким-то причинам комментарий не смог добавиться, попробуйте позже!</p>");} 

/*Отправляем письмо админу*/ 
$mail "11klass@mail.ru"
$subject "Новый комментарий на сайте"
$text "Пишет: $_POST['author'] \n Текст: $_POST['text']"
$utf "content-type:text/plain; charset=utf-8\r\n"
mail($mail,$subject,$text,$utf); 
?>


там каждый коммент нужно привязать id_pu
$result = mysql_query("SELECT * FROM comment_pu WHERE moderator=1 and post='" . mysql_real_escape_string($id_pu) . "' ORDER BY id", $db);

  Ответить  
 
 автор: ladan   (12.12.2011 в 10:59)   письмо автору
 
   для: usa   (12.12.2011 в 09:14)
 

вот в кратце как должно быть:

1. выводятся все комменты со значением moderator=1

2. ниже выводится формочка с добавлением нового.

3. после добавления, идет запись в базу и отправляется письмо админу


<?
$a 
mysql_query("SELECT * FROM comments WHERE moderator=1"); /*вытаскиваются все комменты с полем moderator=1*/
if(mysql_num_rows($a) < 1) {exit("<p>Комментариев пока никто не оставил</p>");} /*когда в базе нет комментов с полем moderator=1*/
$b mysql_fetch_array($a); /*формируем массив*/
 
do
{
printf("<div>%s<br>%s<br>%s</div><br>"$b['author'], $b['date'], $b['text'] ); 
}
while(
$b mysql_fetch_array($a));/*выводим все комментарии в цикле, удовлетворяющие запросу*/
?>
<form action="comments.php" method="post">
Ваше имя: <input type="text" name="author">
Текст: <textarea name='text' cols='45' rows='5'></textarea>
<input type='submit' value='Отправить'>
</form>





теперь код обработчика(comments.php)

<?
/*Небольшая проверка*/
if(empty($_POST['author']) or empty($_POST['text'])) {exit("<p>Заполните все необходимые поля!</p>");}

$date date("Y-m-d");

/*Добавляем комментарий*/
$b mysql_query("INSERT INTO comments (author,text, date) VALUES ('$_POST['author']')','$_POST['text']')','$date',");
if(
$b) {echo "<p>Ваш комментарий успешно добавился в базу и отправлен на модерацию администратору!</p>";}
else {exit(
"<p>По каким-то причинам комментарий не смог добавиться, попробуйте позже!</p>");}

/*Отправляем письмо админу*/
$mail "admin@site.ru";
$subject "Новый комментарий на сайте";
$text "Пишет: $_POST['author'] \n Текст: $_POST['text']";
$utf "content-type:text/plain; charset=utf-8\r\n";
mail($mail,$subject,$text,$utf);
?>


Все! Теперь чтоб комментарий показывался на сайте, нужно зайти в базу, найти комментарий с полем moderator = "" и испавить на moderator = "1". А письмо прийдет только тогда, когда произойдет запись в таблицу

  Ответить  
 
 автор: Lotanaen   (12.12.2011 в 09:48)   письмо автору
 
   для: usa   (12.12.2011 в 09:14)
 

ну так сделайте отправку писем когда вам нужно

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования