Jump to content

Gold Dragon

User
  • Posts

    367
  • Joined

  • Last visited

Everything posted by Gold Dragon

  1. Gold Dragon

    азы 2

    dostel1, у тебя пример очень древний, для PHP 5x (а он практически везде сейчас) нужно писать public static function foo(){...}
  2. Ты можешь просто обращаться к определённому символу $a = 'qwerty'; echo $a[3] . $a[2] . $a[1];
  3. i - символы не зависят от регистра u - строка рассматривается в кодировке UTF-8, просто у меня все проекты в этой кодировке, уже пишу машинально fiver, код то работает?
  4. вот я и говорю что структура не правильная.. Нужно в базе было оставить идентификатор пользователя, а ФИО в отдельную таблицу. И При группировке не будет дублей
  5. fiver, выложи дамп базы, а то создавать новую лень
  6. ну да ну да Ну так уже сказали воспользоваться GROUP BY
  7. ну в принципе тебе ответ уже дали.. Воспользуйся сортировкой по количеству баллов по убыванию, сгруппируй по идентификатору пользователя и баллам и в LIMIT поставь три записи
  8. Вот и я говорю что ошибка проектирования структуры базы!!! У тебя участвуют не ЛЮДИ, а РАБОТЫ (ФОТОГРАФИИ). А значит баллы прибавляются работам.. А вот уже к работам привязываются пользователи.. Нужно или новое поле вводить ИМЯ_РАБОТЫ или делать согласующую таблицу пользователей. А скорее всего и то и другое. И тогда ты просто в запросе получаешь рейтинг работ отсортированных по баллам и сгруппированных по пользователям
  9. ну это уже вопрос другой темы.. но вот этот код сможет помочь немного // массив первичных названий улиц $a = array( "Лесная 2-я", "Совхозный переулок 1-й", "Ленина", "Микрорайон 3-й Зеленоград", "Кутозова 2-й Химки" ); // получаем массив с новыми данными $b = getRenameStreet($a); // пример результата echo '<h3>Исходник:</h3><pre>'; print_r($a); echo '</pre>'; echo '<hr><h3>Результат:</h3><pre>'; print_r($; echo '</pre>'; /** * Делаем отдельную функцию перевёртывания названий улиц * @param array $arr - массив старых названий улиц * @return array - массив новых названий улиц */ function getRenameStreet($arr){ $result = array(); // перебираем весь архив foreach($arr as $str){ // условие разбитие $pat = "#^([а-яА-ЯёЁ ]+)\s*([\d]-[йЙяЯ])?\s*(.*)$#iu"; // разбиваем строку preg_match($pat, $str, $tmp); // собираем новую строку // проверяем есть ли числовая переменная $str = ($tmp[2] != '') ? $tmp[2] . ' ' . trim($tmp[1]) : trim($tmp[1]); // проверяем есть ли населённый пункт $str = ($tmp[3] != '') ? $str . ', ' . $tmp[3] : $str; // добовляем в новый массив $result[] = $str; } // возврат результата return $result; }
  10. fiver, хотел тебе помочь, но чувствую что запутался Как так получается что у тебя один и тот же человек в одной и той же категории, в одной и той же подкатегории, в одной и той же группе имеет несколько очков (т.е. несколько записей)? Я так понимаю это ошибка проектирования базы данных Пример очень не удачный, при правильно проектировании дублирование не может быть (ну или не должно) И тут вообще не зачем работать с массивом. Нужно изначально делать нужный запрос к базе. Например, сделать функцию которой отдавать категорию+подкатегорию+возраст и получать массив готового результата
  11. Ну так спрашивай.. Я в своём примере несколько подходов к обработки данных в строке предложил
  12. так я же сказал.. было немножко свободного времи Кстати, жалко что на этом форуме нет функции Ajax-подкачки схожих тем.. Т.е. человек вводит название темы, а ему тут же показываются похожие. Как на Винграде. Очень удобно
  13. Ну конечно ДА(!) Просто не совсем понятно как эти данные поступают. А может их на дискетах по одной строке привозят .. Да и иногда нужно и мозги по разминать Тем более, данные не структуированы, т.ч. всё равно нужна обработка..PS я про ссылки на сами поисковики, а не на ссылка на конкретные материалы И я против ссылаться на другие ресурсы (ну за исключением конечно явно документации и т.п.). Лучше тут привести пример, чтобы на других форумах делали ссылки на этот
  14. Вот тут было немного времени и накидал маленькую функцию для преобразования строки.. Может чуть увлёкся, но вроде заставил себя остановиться.. А вообще, строка не может наверное быть одна, а значит нужно ещё добавить цикл для обработки массива.. И ещё вообще-то можно сразу забирать данные из файла. Ну и т.д вот собственно код, весь комментарий в коде // одна строка из базы $a = "2;Цветной бульвар м.;5п;Печатников пер.;3;2/6м;60/40/15;Б;ПГ"; // получаем массив с данными $array_data = getData($a); // результат echo '<pre>'; print_r($array_data); echo '</pre>'; /** * Делаем отдельную функцию для обработки строки * @param string $str - строка с данными * @return array - массив с данными */ function getData($str){ // присваиваем сразу всем переменным их значения list($result['kol_komnat'], $result['metro'], $result['minut_ot_metro'], $result['ul'], $result['dom'], $etaz, $sq_ob, $balkon, $lift) = explode(';', $str); // получаем переменную $kak $result['kak'] = (strpos($result['minut_ot_metro'], 'п')) ? 'Пешком' : 'Транспортом'; // удаляем буквы из значения $result['minut_ot_metro'] = intval($result['minut_ot_metro']); // получаем все данные по этажу и зданию preg_match('#^([\d]*)\/([\d]*)([а-я]*)$#iu', $etaz, $tmp); // этаж $result['etaz'] = $tmp[1]; // этажность $result['etaznast'] = $tmp[2]; // здание if($tmp[3] == 'м' or $tmp[3] == 'М') $result['zdanie'] = "Моноглит"; elseif($tmp[3] == 'к' or $tmp[3] == 'К') $result['zdanie'] = "Кирпич"; elseif($tmp[3] == 'д' or $tmp[3] == 'Д') $result['zdanie'] = "Дерево"; else $result['zdanie'] = "Иное"; // получаем данные по квартире list($result['sq_ob'], $result['sq_zh'], $result['sq_kuh']) = explode('/', $sq_ob); // получаем данные по балкону if($balkon == 'б' or $balkon == 'Б') $result['balkon'] = "Есть (балкон)"; elseif($balkon == 'л' or $balkon == 'Л') $result['balkon'] = "Есть (лоджия)"; else $result['balkon'] = "Нет"; // получсаем данные по лифту if(strlen($lift)== 2) $result['lift'] = "Пассажирский и грузовой"; elseif(strpos($lift, 'п') or strpos($lift, 'П')) $result['lift'] = "Пассажирский"; elseif(strpos($lift, 'г') or strpos($lift, 'Г')) $result['lift'] = "Грузовой"; else $result['lift'] = "Нет"; // возврат результата return $result; } PS Зря ссылки делаешь на поисковики так ты с форума и людей и поисковых пауков уводишь, т.е. только минус для рекламы..
  15. Кстати, а что всё таки лучше если задача "скрыть", через PHP+MySQL или через .htaccess
  16. Gold Dragon

    ЧПУ в PHP

    так что бодаться, не бараны же мы тем более человек получил два решения... ps хотя все правила засовывать в .htaccess очень не гибко.. ну если только для простенького сайтика pss интересно, а много веб-серверов на апаче вообще..
  17. Gold Dragon

    ЧПУ в PHP

    да согласен я, что для этого примера это самое то
  18. Gold Dragon

    ЧПУ в PHP

    LunatiK, так я согласен с тобой полностью и даже не спорю.. Просто у этого способа есть некоторые "НО".. Например, передача ведь идёт на конкретный файл, а если файла не существует
  19. Gold Dragon

    ЧПУ в PHP

    так в данном случае ничего не мешает, мы то знаем практически все адреса какие возможно.. вот только структура адресной строки отдельных компонентов сайта бывает очень и очень разной.. всё не предусмотреть.. и всё таки ЧПУ это часть ядра, а не просто надстройка.. так что в код придётся лезть а если понадобится строка не _http://example.com/blog/23 а что-то такое _http://example.com/blog/moya_pervaya_straniza.html
  20. Gold Dragon

    ЧПУ в PHP

    ты пробуй и спрашивай...
  21. Gold Dragon

    ЧПУ в PHP

    ну так моим кодом это _http://example.com/index.php?page=blog&id=23 _http://example.com/index.php?page=article&id=15 _http://example.com/index.php?page=about и будет преобразовано в это _http://example.com/blog/23 _http://example.com/article/15 _http://example.com/about так что введя любой из адресов получится последний но при этом вход один в систему. и это очень безопасно, т.к. контролировать придётся всё в одном месте, а не в каждом файле
  22. Gold Dragon

    ЧПУ в PHP

    А причина не использовать такой способ? Вообще-то он более правильный и безопасный
  23. Gold Dragon

    ЧПУ в PHP

    novickOk, что значит "добавлю"? модет ты про такое? Допустим есть страница какая-то rules.php. Значит чтобы на неё попасть нам нужно ввести адрес example.com/rules Теперь несколько вариантов решения. 1. Добавить в обработчик новое условие (я предпочитаю именно этот вариант) // обрабатываем страницу about case 'rules': // передаём на обработку fRules(); break; 2. И второй вариант получить из строки страницу 'rules' и подключить соответствующий файл, что-то типа такого $pages = (isset($url[1])) ? $url[1] : ''; if(file_exists('ПУТЬ_ДО_ФАЙЛА/' . $pages . 'php'){ require_once('ПУТЬ_ДО_ФАЙЛА/' . $pages . 'php'); } Да куда проще-то ну просто я добавил несколько проверок, да переадресаций. Просто вдруг понадобится отключать ЧПУ..ну и уже с маленьким кодом реализации (как применять то всё это). Просто сейчас пишу SEF для движка, по этому это очень простая реализация А вот в движке уже проблема.. для каждого компонента свой Sef-файл и своя реализация... Вот там я уже все мозги зажарил... Да, кстати, забыл... по нормальному ссылки будут такими _http://example.com/index.php?page=blog&id=23 _http://example.com/index.php?page=article&id=15 _http://example.com/index.php?page=about т.е. всё подключение через файл index.php
  24. Gold Dragon

    ЧПУ в PHP

    LunatiK, думаешь не будет работать? всё вроде подробно прокомментировал
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy