PHP+Mysql Строки и символы...

SelFLeX

Guest
PHP+Mysql Строки и символы...

Здравствуйте!

Сначала опишу всю свою разработку, или, скорее работу, и в течении описания задам свои вопросы.

Мне нужно сделать планировщик. Решившись использовать MySQL, я понял, что особенно извратиться не получится и всплыло такое решение: в таблицу с регистрационной информацией (имя пользователя, md5 hash пароля, и т. д.) я заношу строчку такого вида:
01 // месяц
: // разделитель
1 // число (день)
| // универсальный разделитель
some text // план на день
, // разделитель
8 // час
|
something // план на час
9

...

22
|
asdf
.
02
...

и все в таком духе, т. е. ':' отделяет день от месяца, '|' отделяет название единицы времени от плана на неё, '.' отделяет месяцы, ',' отделяет часы. В общем-то вопросы возникли такие:
1) Каким образом написать парсер вышеозначенного текста?
2) ... при том, дни, месяцы и часы надо будет показывать отдельно друг от друга
3) Не совсем к данной теме, но все же: как сделать текст в MySQL многострочным?

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

Заранее благодарю.
 

Кром

Новичок
Хранить разнородные данные нужно в разных полях. Поэтому универсальные разделители можешь сразу выкинуть. Создай отдельные поля для времени datetime, для названия плана - varchar, для самого плана text

Все это должно быть в другой таблице. Трогать регистрационную таблицу не надо.

Тип поля text используется в mysql для хранения больших текстовых данных.

Да, и еще. Почитай что нибудь по mysql. Иначе полная фигня получится.
 

alexhemp

Новичок
У тебя неверная в корне методология.

Тебе нужно задаться сперва тем, какие данные тебе нужно хранить, а это зависит от того, что ты подразумеваешь под "планировщиком".

Потом нужно определить какие операции ты будешь проводить над этой структурой данных и потом уже - как хранить в базе.

А ты делаешь шиворот-навыворот. Сперва делаешь какой-то непонятный формат в базе, который не знаешь даже как распарсить назад.

Главный принцип тут как миниумум нужно соблюдать - каждой сущьности - свое "отношение" (синоним реляция или таблица).
 

SelFLeX

Guest
Originally posted by Кром
Хранить разнородные данные нужно в разных полях. Поэтому универсальные разделители можешь сразу выкинуть. Создай отдельные поля для времени datetime, для названия плана - varchar, для самого плана text

Все это должно быть в другой таблице. Трогать регистрационную таблицу не надо.

Тип поля text используется в mysql для хранения больших текстовых данных.

Да, и еще. Почитай что нибудь по mysql. Иначе полная фигня получится.
Кром, и тебе, и тебе, alexhemp огромное спаибо. Слегка поясню вопросы, конкретизирую их.
1) По поводу text:
Да, я писал в текст несколько строк, но при выводе (при вводе нет!) он плюет на форматирование и выплевывает мне все в одну строку
2) По поводу шиворот-навыворот и усложнений:
Вот в том то и дело, что для каждого юзера придется создавать свою таблицу, такие варианты я рассматривал, но запись, редактирование получается так себе как минимум.
 

Wicked

Новичок
lol :)
Originally posted by SelFLeX
1) По поводу text:
Да, я писал в текст несколько строк, но при выводе (при вводе нет!) он плюет на форматирование и выплевывает мне все в одну строку
Не браузером ли ты этот вывод смотришь, дружок? :)
2) По поводу шиворот-навыворот и усложнений:
Вот в том то и дело, что для каждого юзера придется создавать свою таблицу, такие варианты я рассматривал, но запись, редактирование получается так себе как минимум. [/B]
Зачем таблицу? Давай уж сразу базу данных... или сервер %)
Ты хоть в уме себе можешь представить таблицу с 2 столбцами, а не с одним?
 

Wicked

Новичок
http://phpfaq.ru/na_tanke

-~{}~ 17.01.05 22:17:

собственно, оттуда:
"Нажатие на Энтер" не переводит строку? А в html вы не пробовали таким образом строки переводить? Не получилось? Какая досада. Прочитайте, как в html сделать перевод строки и приходите снова.
 

SelFLeX

Guest
Originally posted by Wicked
lol :)

Не браузером ли ты этот вывод смотришь, дружок? :)

Зачем таблицу? Давай уж сразу базу данных... или сервер %)
Ты хоть в уме себе можешь представить таблицу с 2 столбцами, а не с одним?
Слушай, паря, давай! Предложи другое решение.
 

Gas

может по одной?
SelFLeX
Лучше всего почитать теорию по проектированию баз данных.
Потом тебе станет оцевидно что нужно 2 таблицы - одна с юзерами, вторая с задачами и конечно все данные пихаются не в одно поле.
 

Wicked

Новичок
SelFlex, я бы предложил, да Фанат засмеет, что я с тобой так вожусь %)

Тем более, на данном уровне твоего развития тебе бесполезно объяснять такие вещи, т.к. на след. же день ты опять прибежишь за помощью, даже если тебе придется проектировать что-то аналогичное.

Для начала тебе просто необходимо прочитать про реляционные базы данных вцелом. Потом про нормализацию баз данных (http://www.ithum.nw.ru/DBP/DBPublishing.htm).
 

alexhemp

Новичок
SelFLeX

Без обид, но все они правы.

1. Изучай программирование как науку (а не как язык PHP)
2. Изучай теорию реляционных БД, язык SQL, нормальные формы отношений (таблиц).
3. Изучай HTML
4. Изучай PHP и его взаимодействие с браузером когда он работает на HTTP сервере.
5. Ставь задачу, проектируй структуру БД (модель предметной области)
6. Пиши ввод-вывод данных

Это минимальный сценарий.
 

SelFLeX

Guest
alexhemp

Да что ты говоришь =)
Если ты такой умный, то чего же ты тут сидишь? Или твоя фамилия Балмер? А может быть Ульман? Если так, то прости.
 
Сверху