|
|
Обсуждение вопросов, связанных с разработкой web-систем
30 июл 2009, 21:37
Для форума нужна фича с отметкой о прочтении именно сообщения а не всего топика. Сделал кнопочку, которая передаёт в обработчик текст сообщения обработчику, но вот столкнулся с тем что когда делаеш выборку потом из БД, а именно из таблицы phpbb_posts сравниваются только записи на английском языке! Вот код обработчика - Код: выделить все
$id_post = $_POST["id_post"]; $taim = mysql_escape_string($_POST['today']); $topic = mysql_escape_string($_POST['topic']); $user_id = mysql_escape_string($_POST['user']); $db = mysql_connect("phpBBlight","phpBBlight","phpBBlight"); mysql_select_db("phpBBlight",$db); $result = mysql_query ("SELECT * FROM phpbb_posts WHERE post_text = '$id_post'"); $myrow = mysql_fetch_array($result); echo $myrow[post_id]; echo $myrow[poster_id];
Переменной id_post передаю текст самого сообщения через {postrow.MESSAGE}. Понимаю, что проще бы было передать просто id сообщения и по нему уже делать выборку, но не могу понять как его передать, точнее где его взять? Вывести что post_id, что poster_id получается только если сам текст сообщения на английском если на русском, то просто нечего не выводит. Почему так и как с этим бороться?
-
Pitmen
-
31 июл 2009, 08:39
Pitmen Чем вам все-таки не угодила переменная шаблона {postrow.POST_ID} и потом выборка из базы по id.
Ваш подход порочен еще и тем, что при двух сообщениях с одинаковым текстом получится полная чепуха.
Самая страшная ошибка - это ошибка без конкретных причин и видимых последствий.
Личка и icq - только для личных вопросов. Консультации в личке оказываю только за плату. Все остальное будет игнорироваться.
-

Alek$
- Поддержка
-
- Сообщений: 262
- Зарегистрирован:
28 янв 2009, 15:41 - Откуда:
Новосибирск
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
31 июл 2009, 09:35
Alek$ писал(а):Чем вам все-таки не угодила переменная шаблона {postrow.POST_ID} и потом выборка из базы по id.
Ваш подход порочен еще и тем, что при двух сообщениях с одинаковым текстом получится полная чепуха.
Спасибо большое, я вот всё и думал где взять эти переменные шаблона, а именно ID поста! А где вообще находятся эти переменные?
-
Pitmen
-
31 июл 2009, 09:48
Pitmen задаются они во viewtopic.php, вызовом $template->assign_block_vars('postrow', ... )
Самая страшная ошибка - это ошибка без конкретных причин и видимых последствий.
Личка и icq - только для личных вопросов. Консультации в личке оказываю только за плату. Все остальное будет игнорироваться.
-

Alek$
- Поддержка
-
- Сообщений: 262
- Зарегистрирован:
28 янв 2009, 15:41 - Откуда:
Новосибирск
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
31 июл 2009, 11:43
Alek$ писал(а):Ваш подход порочен еще и тем, что при двух сообщениях с одинаковым текстом получится полная чепуха.
А какой подход Вы посоветуете?
-
Pitmen
-
31 июл 2009, 12:56
Pitmen Через POST_ID
Самая страшная ошибка - это ошибка без конкретных причин и видимых последствий.
Личка и icq - только для личных вопросов. Консультации в личке оказываю только за плату. Все остальное будет игнорироваться.
-

Alek$
- Поддержка
-
- Сообщений: 262
- Зарегистрирован:
28 янв 2009, 15:41 - Откуда:
Новосибирск
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
31 июл 2009, 15:06
Alek$ писал(а):Через POST_ID
Впринципе я сейчас и пошол этим путё, сперва через POST_ID переданный методом пост подключился к БД и вывел пользователю инфу, о том что он отметил пост такойто в теме такойто и пр. вот код - Код: выделить все
header("Content-Type: text/html; charset=utf-8"); $id = $_POST["id"]; $post_num = $_POST["post_num"]; $taim = mysql_escape_string($_POST['today']); $topic = mysql_escape_string($_POST['topic']); $user_id = mysql_escape_string($_POST['user']); $db = mysql_connect("phpBBlight","phpBBlight","phpBBlight"); mysql_query("SET NAMES UTF8"); mysql_select_db("phpBBlight",$db); $result = mysql_query ("SELECT * FROM phpbb_posts WHERE post_id = '$id'"); $myrow = mysql_fetch_array($result); <!-- ENDPHP --> <a href="<!-- PHP -->echo $_SERVER['HTTP_REFERER'];<!-- ENDPHP --> " title="Назад">Вернуться назад.</a><br>
<h2>Отмеченные сообщения</h2>
<div class="panel"> <div class="inner"><span class="corners-top"><span></span></span>
<div class="content"> <p> <h2><a class="titles" href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a></h2> <h2>Сообщение </h2><br> Заголовок сообщения: "<!-- PHP -->echo $myrow[post_subject];<!-- ENDPHP -->"<br> "<!-- PHP -->echo $myrow[post_text];<!-- ENDPHP -->"<br><br><h2> отмечено пользователем <!-- PHP -->echo $user_id;<!-- ENDPHP --> как прочтённое! <p> <!-- PHP -->echo $taim;<!-- ENDPHP --></p></h2> <!-- PHP -->
Создал таблицу и собираюсь туда заносить данные о том кто и когда какое сообщение пометил, но вот тут и возникла проблемма, не хочет заносить данные и всё, вот код очередной попытки, вроде всё правильно, но почему не заносит? - Код: выделить все
<!-- PHP --> $id_uzer = mysql_escape_string($myrow[poster_id]); echo $id_uzer; $forum_id = $myrow[forum_id]; $post_id = $myrow[post_id]; $bd = mysql_connect("phpBBlight","phpBBlight","phpBBlight"); mysql_select_db("phpBBlight",$bd); $res = mysql_query ("INSERT INTO phpbb_otmet_post (id_uzer ) VALUES ('$id_uzer')$bd"); if ($res == 'true') { echo "Информация в базу добавлена успешно!";
} else { echo "Информация в базу не добавлена!"; }
-
Pitmen
-
31 июл 2009, 15:13
Потому что у вас вот в этой строчке закрывающая двойная кавычка стоит ге попало: - Код: выделить все
$res = mysql_query ("INSERT INTO phpbb_otmet_post (id_uzer ) VALUES ('$id_uzer')$bd")
Такую тривиальную ошибку можно было бы и самому заметить.
Самая страшная ошибка - это ошибка без конкретных причин и видимых последствий.
Личка и icq - только для личных вопросов. Консультации в личке оказываю только за плату. Все остальное будет игнорироваться.
-

Alek$
- Поддержка
-
- Сообщений: 262
- Зарегистрирован:
28 янв 2009, 15:41 - Откуда:
Новосибирск
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
31 июл 2009, 16:08
Спасибо, так правильно? - Код: выделить все
$res = mysql_query ("INSERT INTO phpBBlight_otmetpost (id_uzer ) VALUES ('$user_id');");
и ещё там проблема в названии таблицы было почему то 2 _ в названии не воспринималось, убрал и всё заработало!
-
Pitmen
-
31 июл 2009, 16:12
Pitmen писал(а):так правильно?
Ну, если забить на то, что в phpBB есть свой класс для работы с БД, то да.
Самая страшная ошибка - это ошибка без конкретных причин и видимых последствий.
Личка и icq - только для личных вопросов. Консультации в личке оказываю только за плату. Все остальное будет игнорироваться.
-

Alek$
- Поддержка
-
- Сообщений: 262
- Зарегистрирован:
28 янв 2009, 15:41 - Откуда:
Новосибирск
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
Вернуться в PHP и MySQL
Кто сейчас на форуме
Зарегистрированные пользователи: Google [Bot], sergey749, Yandex [Bot]
|
|
|
|
|