[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Модуль новостей + Гостевая книга (IRBIS_Team)
walters
Доброе время суток, появилась идея совместить Модуль новостей и Гостевую книгу... то есть что бы служило как комментарии к новостям...

как то связать по ид и для каждой новости выводить сообщения и поле для ввода....

кто может подсказать как правильнее сделать.



Спустя 2 часа, 5 секунд (31.01.2011 - 19:57) twin написал(а):
Добавь в таблицу гостевой колонку id_news и связывай по ней. В чем затык?

Спустя 1 час, 23 минуты, 43 секунды (31.01.2011 - 21:21) alex12060 написал(а):
Да, именно так)
Как твин говорит)
Только еще меняешь запрос и все)

Спустя 1 час, 48 минут, 33 секунды (31.01.2011 - 23:09) walters написал(а):
легко сказать...
там во первых нужно разделить шаблоны краткой и полной новости....
что бы форму и сообщения выводить токо в полной

Спустя 55 минут, 42 секунды (1.02.2011 - 00:05) Evilsoul написал(а):
пыль ... cool.gif

Спустя 1 день, 18 часов, 44 минуты, 16 секунд (2.02.2011 - 18:49) walters написал(а):
Я тут решил определить автора новости по хаш... то есть добавил еще 1 поле в таблицу... и и при добавление записывается хаш автора...

но поевилась проблема... помогите выполнить запрос знав хаш.... то есть при создание шаблона что бы вместо $tpl_author что бы было уже логин... выведеный по хашу...


я пробовал делать запрос в формирование шаблона но не получается(

Спустя 12 минут, 59 секунд (2.02.2011 - 19:02) walters написал(а):
  $res = mysqlQuery("SELECT `id`, `date`,`subtitle`,`public`, `hash`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`,
SUBSTRING_INDEX(`text`,' '," . IRB_NUM_WORD_NEWS_MAIN . ") AS `text`
FROM `". IRB_DBPREFIX ."news`
WHERE `public` = 1
ORDER BY `id` DESC
LIMIT ". IRB_NUM_NEWS_MAIN);

if(mysql_num_rows($res) > 0)
{
while ($row = mysql_fetch_assoc($res))
{
$row['date'] = $row['day'] . ' ' . $lang_month_string[$row['month']] . ' ' . $row['year'];
$row['subtitle'] = htmlspecialchars($row['subtitle']);
$row['text'] = createBBtags($row['text'], false) . "...";
$row['url'] = href('news=' . $row['id']);
$row['link'] = IRB_LANG_FULL_NEWS;
$row['hash'] = mysqlQuery("SELECT `login`
FROM `". IRB_DBPREFIX ."user`
WHERE `hash` = `".$row['hash'] ."`
");
if (mysql_num_rows($row['hash']) > 0)
{
$row['hash'] = mysql_fetch_assoc($row['hash']);
}








$news .= parseTpl($tpl, $row);

Спустя 21 час, 1 минута, 20 секунд (3.02.2011 - 16:03) Evilsoul написал(а):
Цитата
то есть при создание шаблона что бы вместо $tpl_author что бы было уже логин...
Что-то я не понял сути этой строки.
Код подсвети.

Спустя 12 минут, 8 секунд (3.02.2011 - 16:15) walters написал(а):
при добавление новости на сайт добавляется hash автора новости, и имея hash хочу вытащить из таблицы irbis_users логин.

(я добавил в таблицу irbis_news поле hash)




$res = mysqlQuery("SELECT `id`, `date`,`subtitle`,`public`, `hash`,
DATE_FORMAT(`date`,'%d') AS `day`,
DATE_FORMAT(`date`,'%m') AS `month`,
DATE_FORMAT(`date`,'%Y') AS `year`,
SUBSTRING_INDEX(`text`,' '," . IRB_NUM_WORD_NEWS_MAIN . ") AS `text`
FROM `". IRB_DBPREFIX ."news`
WHERE `public` = 1
ORDER BY `id` DESC
LIMIT ". IRB_NUM_NEWS_MAIN);

if(mysql_num_rows($res) > 0)
{
while ($row = mysql_fetch_assoc($res))
{
$row['date'] = $row['day'] . ' ' . $lang_month_string[$row['month']] . ' ' . $row['year'];
$row['subtitle'] = htmlspecialchars($row['subtitle']);
$row['text'] = createBBtags($row['text'], false) . "...";
$row['url'] = href('news=' . $row['id']);
$row['link'] = IRB_LANG_FULL_NEWS;
$row['author'] = ТУТ СДЕЛАТЬ ЗАПРОС НА ЛОГИН ЗНАВ ЕГО ХАШ

$news .= parseTpl($tpl, $row);






Спустя 14 минут, 39 секунд (3.02.2011 - 16:30) Evilsoul написал(а):
В чем же проблема?
Я ещё не работал с Хешем ...
ЧТо в поле хеш? Тот же логин только хешированый?
Если правильно тебя понял, найди функцию хеша, которая преобразует его в нормальный вид и сделай выборку если есть совпадение:
$row['link'] = IRB_LANG_FULL_NEWS;

// здесь преобразуй хеш в логин
$res2 = mysqlQuery("SELECT * FROM `". IRB_DBPREFIX ."news`, `". IRB_DBPREFIX ."users`
WHERE `"
. IRB_DBPREFIX ."news`.`hash` = `". IRB_DBPREFIX ."users`.`login`");
$row2 = mysql_fetch_assoc($res2);
$row['author'] = $row2['author'];

Спустя 40 минут, 41 секунда (3.02.2011 - 17:11) walters написал(а):

$row['link'] = IRB_LANG_FULL_NEWS;

$res2 = mysqlQuery("SELECT `login`
FROM `"
. IRB_DBPREFIX ."user`
WHERE `hash` = `"
. $row['hash'] ."` ");
$row2 = mysql_fetch_assoc($res2);

$row['author'] = $row2['login'];




Ето проще( но всё ровно не работает ошабка гдето



2011-02-03 05:05:31 MySQL error:
Unknown column '6c4740036788bf99d205b8b25e0ed80f' in 'where clause'

Query:

SELECT login FROM `irbis_user`
WHERE `hash` = `6c4740036788bf99d205b8b25e0ed80f`



File: W:\home\test1.ru\www\modules\news_controller.php
Line: 109

Спустя 4 минуты, 38 секунд (3.02.2011 - 17:15) Evilsoul написал(а):
Ну кончно, разве у тебя есть столбик хеш в таблице юзерс?

 WHERE `hash` 

Спустя 3 минуты, 23 секунды (3.02.2011 - 17:19) Evilsoul написал(а):
И здесь не правильно
`". $row['hash'] ."`

здесь должно быть значение в ' ' таких кавычках

Спустя 4 минуты, 49 секунд (3.02.2011 - 17:24) Evilsoul написал(а):
$res2 = mysqlQuery("SELECT `login`
FROM `"
. IRB_DBPREFIX ."user`
WHERE `login` = '"
. md5($row['hash']) ."' ");


Где-то так, если я правильно понял действие функции md5

Спустя 23 минуты, 41 секунда (3.02.2011 - 17:47) twin написал(а):
Во всех таблицах есть уникальный id. Идеальная весчь для связи таблиц. С какой целью испльзуется хэш, который кстати говоря может в любую секунду измениться, стоит юзеру восстановить пароль допустим?

Я же написал. Нужно добавить поля для родительских идентификаторов и связывать по ним.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.