|
|
|
|
|
для: usa
(12.12.2011 в 19:40)
| | а вы Денвером пользуетесь? Быть может еще из-за этого. У меня phpmyadmin. Ошибок быть не должно.
программа думает, что $a = mysql_query("SELECT * FROM coment WHERE moderator=1") не удовлетворяет запросу, вот и ошибка. Либо у вас таблица не создана или название не то, либо у вас поле moderator отсутствует в таблице | |
|
|
|
|
|
|
|
для: 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); /*формируем массив*/
|
если выведется, что выборка прошла успешно, то ошибок быть не должно, а иначе надо... запрос поменять, наверняка у вас где-то косячок :) У меня все работает. Исходники- два файла + бд | |
|
|
|
|
|
|
|
для: ladan
(12.12.2011 в 18:38)
| | какие исходники? :)
они уже приведены выше. | |
|
|
|
|
|
|
|
для: 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));/*выводим все комментарии в цикле, удовлетворяющие запросу*/
|
| |
|
|
|
|
|
|
|
для: 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')"); | |
|
|
|
|
|
|
|
для: 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);
|
| |
|
|
|
|
|
|
|
для: 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". А письмо прийдет только тогда, когда произойдет запись в таблицу | |
|
|
|
|
|
|
|
для: usa
(12.12.2011 в 09:14)
| | ну так сделайте отправку писем когда вам нужно | |
|
|
|
|