Автор Тема: Несколько интересных вопросов к знающим ответы!  (Прочитано 16405 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Цитировать
RomikChef:
Меня страшно интересует вопрос - почему ты не стал читать ответ на своем сайте, а пришел на форум?

у меня есть несколько вариантов ответов.
а. не разобрался, как оно работает, ну слишком там наворочено для постраничной системы вывода...
б. не знает, что оно там вообще есть.
в. ищет альтернативу (хотя врядли)

У меня есть другой вопрос, что такое псевдокод?
Я до сих пор перечитываю книжку Информатика и вычислительная техника, где реализация решения всех задач сделана на школьном алгоритмическом языке. Да-да был такой. Программы на школьном алгоритмическом языке выполняются разными исполнителями (вначале описывается), например, исполнитель робот, либо исполнитель световое перо.
Насколько мне известно, в некоторых книгах, которые описывают реализацию математических алгоритмов в вычислительной технике, тоже все алгоритмы написаны на абстрактном языке программирования, т.е. представляют определенного рода псевдокод, который потом программисту надо будет реализовывать.
работа в Украине

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Цитировать
it4all:
На данном форуме при посыле вылазиет инфа - "что если броузер не поддеживает редирект,жми сюда".
Актуально ли это сейчас и что за броузеры такие ?

на этом форуме редирект в том месте, о котором ты говоришь реализован через яваскрипт. если яваскрипт на клиенте отключен, редиректа не произойдет
ну, будем исповедоваться?

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Цитировать
AliMamed:
на этом форуме редирект в том месте, о котором ты говоришь реализован через яваскрипт.


Если это - яваскрипт, то я - пасхальный заяц.

Цитировать
RomikChef:
по твоему вопросу - не актуально. старые.

Если говорить именно о браузерах, то ты полностью прав.
Но ведь есть ещё и поисковики. Пусть в нашем конкретном случае с форумом это не актуально (редиректы типа "Сообщение добавлено" или "Сейчас будут результаты поиска"), но забывать об этом имхо не стоит.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FreeSpace
Ну, раз здесь не актуально, то приведи актуальный пример, когда это поисковику надо понимать мету, или, точнее, что будет, если поисковик не поймет.
« Последнее редактирование: 13 Января 2004, 20:52:26 от RomikChef »

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
RomikChef
Ничего не будет. Поисковик просто не поймет, что его пытаются редиректнуть на другую страницу.

С актуальным примером сложнее, в голову сейчас ничего не приходит.
Если сходу - поисковик зайдет по ссылке "сообщения за сегодня" сверху и обломается.
Конечно, пример не ахти какой, но сама идея вроде понятна.
Я согласен, что строить сайты с навигацией на основе таких рефрешей - извращение ещё то. Но мало ли :)
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн it4all

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.it4all.h10.ru
RomikChef и Yukko отвечаю - а. не разобрался, как оно работает, ну слишком там наворочено для постраничной системы вывода...
Новый вопрос.
Написал свой маленький форум.Подскажите что сделано не правильно ?
Его обслуживают 4 рнр-файла и 1 таблица MySQL.
Структура таблицы:
topic varchar (5) - принимает значения "yes"-если это тема или "no"-если ответ
topic_id varchar(20) - уникальные id тем (генерируется uniqid())
topic_name varchar (255) - заголовки тем
name varchar (20) - имена участников
email(40) - их мыло
url(40) - сайты если есть
date datetime - дата внесения записи
message text - сообщение
last_reply datetime - дата последнего сообщения.
Файл forum.php
Здесь в цикле выводятся все строки где "topic=yes",и вэтом же цикле выводятся количество строк
с соответсвующем теме "topic_id" для отображения количества сообщений (естественно кроме самой темы)
Затем отображается форма для создания новых тем (без всякой предварительной регистрации).
Данные имя,емаил,сайт,заголовок темы,текст темы пердаются файлу "add_forum_topic.php",где
идет проверка на корректность е-майла, пустоту сообщения,удаляются весь html и апострофы.
Затем все это хозяйство вносится в БД,причем дата создания темы дублируется на дату последнего сообщения.
И с помощью header("Location: forum.php") возвращает пользователя на главную форума.
Кликнув по заголовку темы пользователь попадает на файл "viewforum.php",скрипту которого передается id-темы.
Здесь выбираются данные по "topic_id" и внизу отображается форма для ответов,которая делает тоже-самое,
и заодно еще и апдейтит "last_reply" по строке темы.
Вот вроде и все.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
смотри-ка - освоил, наконец, название правильное, вместо "вывода цифровых ссылок, какие появляются в оисковиках, гостевых, форумах" :-))

поле топик должно быть пустым у первых сообщений темы и содержать номер первого, если это ответ. а не йес но.
соответственно, список тем выводится по условию топик=""

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

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
По-моему структура изначально неверная.
К теме нужно было относиться как к контейнеру для сообщений, их нельзя ставить на один уровень и запихивать в одну таблицу.

Теперь что касается типов полей:
Цитировать
topic varchar (5) - принимает значения "yes"-если это тема или "no"-если ответ

Для этих целей используют поле enum или tinyint (1 - тема, 0 - сообщение).
Конечно же, следуя совету RomikChef\'а, от этого поля можно вообще отказаться.
Цитировать
topic_id varchar(20) - уникальные id тем (генерируется uniqid())

Почему варчар и зачем uniqid()?
Чем тебе не угодил числовой primary key с auto_increment?

Что касается date и last_reply, то тут и виден первый признак неправильной структуры БД.
Зачем каждой записи иметь поле last_reply? Вообще при таком подходе время последнего ответа можно вычислить "на лету".
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Цитировать
FreeSpace:
числовой primary key с auto_increment?

ему не угодил потому, что автоинкремент генерится ВСЕМ записям новый.
А он хотел один ид у всех сообщений темы.

Однако, не подумал, что можно сделать проще, а уникальный ид нужен каждому сообщению, если учесть теоретическую возможность редактирования.

Цитировать
FreeSpace:
К теме нужно было относиться как к контейнеру для сообщений, их нельзя ставить на один уровень и запихивать в одну таблицу.

в простом форуме можно.

Цитировать
FreeSpace:
Зачем каждой записи иметь поле last_reply?

при такой структуре не обойтись.
Да и много места не займет.
Цитировать
FreeSpace:
? Вообще при таком подходе время последнего ответа можно вычислить "на лету".

для этого нужен джойн, а это потенциальные тормоза.
так что, можно и продублировать

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
По-моему, если разнести темы и сообщения по двум разным таблицам, производительность сильно не упадет, зато 90% всех замечаний можно будет ликвидировать сразу.
А вот если продолжать лепить всё в одну кучу, то будет у нас страшный монстр :)
Вот про редактирование отдельных сообщений я тоже сразу не подумал, а автору эта возможность похоже и не нужна - форум-то совсем простой.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
it4all:
Хочу открыть новую тему ,на которой буду задавать не самые глупые вопросы


я так настроился серьезно, думаю важная тема наверное. Читал аж понять немог...
Цитировать
it4all:
Как проще всего вывести из БД дату последнего сообщения


читал и думал - может я гоню?..., неужели все так сложно?..., может я неправильно чтото делаю?...

очень неглупый вопрос, как вывести последнюю дату, ... точно... как же ее вывести? ведь последняя.
Цитировать
it4all:
Приведите псевдокод вывода цифровых ссылок


:) псевдокод такой: вывести тег с данными :)))))
Цитировать
it4all:
Пока все.


тема написана в стиле - "а ну ка нигеры..."

хотя бы написал "извините, несоображаю пока", как начинал например я, в конце нужно писать -"с поклоном вам дорогие специалисты" и др.

Счастливо, Моцарт :)
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн it4all

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.it4all.h10.ru
Резюмирую всю информацию за сегодня.
1.Форум должон обслуживатся минмум 2 таблицами,одна для тем,другая для ответов.
2.Ликвидирую "yes" и "no",и заменяю их на 1 и 0
3.Но вот как без всяких-разных "id" обойтись,не представляю.Как различить ответы для одной темы
от ответов для другой.Более того ,как наведеш курсор на любую ссылку на форуме,так там не один,
а несколко "id" передаются.
4.Накой мне "auto_incrementить" все ответы , не понял.

На сегодня все.Не хочу много занимать вашего драгоценного времени.

З.С.
-----------
B]Yukko[/B]  - У меня есть другой вопрос, что такое псевдокод?
Отвечаю - не помню откуда я взял это слово,но если посмотреть мое предыдущее сообщение,то
оно описывает работу форума,практически без синтаксиса рнр.
Не ахти какой,но всеже это псевдокод (или алгоритм).[
« Последнее редактирование: 14 Января 2004, 16:35:42 от it4all »

Оффлайн it4all

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.it4all.h10.ru
Цитировать
RomikChef:
Однако, не подумал, что можно сделать проще, а уникальный ид нужен каждому сообщению, если учесть теоретическую возможность редактирования.

Как проще?
А под редактированием вы имеете ввиду ссылочку "Править"

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Цитировать
Но вот как без всяких-разных "id" обойтись,не представляю.Как различить ответы для одной темы
от ответов для другой.Более того ,как наведеш курсор на лбую ссылку на форуме,так там не один,
а несколко "id" передаются

Сделать в таблице поле с id темы, и отбирать по нему...

Цитировать
Накой мне "auto_incrementить" все ответы , не понял

Для того, что бы можно было спокойно реализовывать п.5

Цитировать
5.Насчет редактирования собственных ответов, положа руку на системный блок,признайтесь когда в
последний раз занимались этим


Положа руку на сердце могу сказать, что я лично редактирую, треть своих сообщений, причем чаще всего в течение 20-30 минут...

Оффлайн it4all

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.it4all.h10.ru
Приветствую новых участников моей глупой темы.
Цитировать
Phoinix:
Сделать в таблице поле с id темы, и отбирать по нему...

Я так ихотел ,но FreeSpace и RomikChef
в предыдущих сообщениях усиленно отговаривают меня от этого.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28