[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Распарсить строку
novyi
Подскажите, как из строки "abc.123|" получить "123"
Kusss
echo preg_replace('/[^0-9]/', '', $str);
leo184
echo substr('abc.123|', 4, 3);
novyi
Извиняюсь что так неточно описал задачу. Дело в том, что я не знаю число ли это и длину строки. Известно только что после abc. надо достать значение, которое до прямого слэша.

Попробую объяснить подробней зачем это, может посоветуете как корректней решить задачу.

У пользователей на сайте будет возможность выполнять задания. их может накопится много. для каждого задания занимать отдельную ячейку в базе как-то не правильно. Хочу в одну ячейку, при выполнении, добавлять запись zadanie1| , в некоторых случаях задания с доп параметром, например zadanie2.parametr|

таким образом строка будет выглядеть так: zadanie1|zadanie2.parametr|zadanie3|...

проверять выполненность задания буду функцией

function task($string,$task) {
if(preg_match('/'.$task.'/',$string)) {return true;} else {return false;}
}

проверять доп параметр задания

function taskset($string,$task) {
if(preg_match('/'.$task.'\./',$string)) {
$out = 'здесь проблема, я с пхп на вы'
return $out;
} else {return false;}
}

Может есть более правильный подход к решению задачи?
Игорь_Vasinsky
Цитата
для каждого задания занимать отдельную ячейку в базе как-то не правильно.


user posted image

может стоит прочитать про нормализацию, т.е. про нормальные формы бд ???? прежде чем такую чушь нести

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

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
novyi
то есть для заданий заводить отдельную таблицу. тогда как ассоциировать задания с пользователями, выполнившими их? или имеется ввиду для каждого задания по отдельной ячейке в таблице с пользователями? так еще неудобней будет если заданий будет много

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

Понимаю что это как то не совсем правильно, но в голову ниче не лезет

необходимо только получать из базы выполнено ли для пользователя конкретное задание и один параметр к этому заданию
kaww
Цитата (novyi @ 8.08.2016 - 12:26)
тогда как ассоциировать задания с пользователями, выполнившими их? или имеется ввиду для каждого задания по отдельной ячейке в таблице с пользователями?

Судя по всему, вы не имеете даже представления об организации данных в реляционных БД. Для начала почитайте про проектирование баз данных (что такое отношение один ко многим, многие ко многим и пр.), нормальные формы. Увидите, что все ваши вопросы выше отпадут сами собой.
Игорь_Vasinsky
Задания
tasks
task_id
task_name
...
...


Пользователи
users
users_id
users_login
...
...


Выполненные задания
results
results_id
users_id
tasks_id


Таблица results и содержит информацию о том - какой пользователь какое задание выполнил


Цитата
необходимо только получать из базы выполнено ли для пользователя конкретное задание и один параметр к этому заданию


Конкретное задание для пользователя
select * from results 
where users_id = :users_id
and task_id = :task_id


Все задания пользователя
select * from results 
where users_id = :users_id


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
novyi
Спасибо всем, то что надо, все элегантно и просто, странно что сам не догнал, элементарно ведь, и делал так уже когда-то
Быстрый ответ:

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