PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (7): « 1 2 3 [4] 5 6 7 »

> Найдено сообщений: 92
MrBeard Отправлено: 25 Сентября, 2011 - 13:19:37 • Тема: LIKE mysql+php • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 36
PHP:
скопировать код в буфер обмена
  1.  
  2. if (!empty($country))
  3.     where .= " and `country` LIKE '%$country%' "
  4.  
MrBeard Отправлено: 25 Сентября, 2011 - 13:17:03 • Тема: for и переменная i • Форум: Вопросы новичков

Ответов: 5
Просмотров: 162
нужно условие для каждой пятой итерации?
если не ошибаюсь, то
MrBeard Отправлено: 24 Сентября, 2011 - 21:45:38 • Тема: оптимизация • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 57
Champion пишет:

тогда уж (adrub, astatus)

эм, с чего бы это? у него
1) последовательность запроса именно astatus, abrub;
2) подзапрос имеет WHERE astatus > 0;
как при этом получается индекс (adrub, astatus) ?
почитаю ка про оптимизатор мускулевый)

в принципе, могу предположить, что последовательность условий в where может поменять оптимизатор самой базы данных(надо бы проверить завтра), но тогда получится, что нужен отдельный индекс для astatus.
MrBeard Отправлено: 24 Сентября, 2011 - 21:25:38 • Тема: оптимизация • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 57
caballero пишет:
проследи чтобы в таблицах было индексы
и count лучше ставить индексное поле всесто *

adrub на это поле индекс поставь

а разве ему нужен не индекс по двум полям? Мы же говорим про MySQL, не правда ли?
CODE (SQL):
скопировать код в буфер обмена
  1. WHERE astatus > 0 AND adrub = 101

INDEX my_table_index ( astatus, adrub);

и вообще, при просьбе оптимизации было бы интересно глянуть на explain, наверно. Плюс есть профайлинг для таких целей
MrBeard Отправлено: 24 Сентября, 2011 - 20:52:02 • Тема: Считаем строки в таблице • Форум: Работа с СУБД

Ответов: 12
Просмотров: 3391
byfahrenheit пишет:
caballero пишет:
найди доки по синтаксису mysql
полно в инете на русском языке
например есть запрос replace который
либо update либо insert в зависимости от ситуации
и т.д.


Сам по себе replace заменяет определенный текст, на другой.
как INSERT - ну насколько я понял он должен добавлять строки.
А вот как сделать Update всего столбца, я помощью запроса выше - понять не могу ...


%facepalm%

CODE (SQL):
скопировать код в буфер обмена
  1. REPLACE INTO test (eventId,record_num) SELECT eventId, COUNT(eventId) FROM w_records GROUP BY eventId


или вот так
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO test (eventId,record_num)
  3.     SELECT eventId, COUNT(eventId) AS eventCount FROM w_records GROUP BY eventId
  4. ON DUPLICATE KEY UPDATE record_num = eventCount
  5.  


и ещё, поле eventId должно быть Primary key или Unique
MrBeard Отправлено: 24 Сентября, 2011 - 20:35:28 • Тема: вкл/выкл • Форум: HTTP и PHP

Ответов: 22
Просмотров: 4781
E-Pro пишет:
function Go(type)
CODE (javascript):
скопировать код в буфер обмена
  1. {
  2.  type = (type == 1) ? 0 : 1;
  3.  $.post("patch-edit-vis", {"type": type});
  4.  $("img#img").attr({"src":"vis"+type+".png"});
  5. }



http://api[dot]jquery[dot]com/jQuery[dot]post/
советовал бы не менять картинку сразу, а в callback проверять ответ сервера и только на success менять картинку. а то мало ли)))
MrBeard Отправлено: 24 Сентября, 2011 - 13:24:50 • Тема: Считаем строки в таблице • Форум: Работа с СУБД

Ответов: 12
Просмотров: 3391
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, count(id)
  2. FROM somewhere
  3. GROUP BY id
  4.  

а далее результат построчно вставляешь в другую таблицу
вроде так
(Добавление)
caballero пишет:
insert into table1 (id,cnt) ... SELECT id, COUNT(*) FROM TABLE GROUP BY id

ага, так быстрее)
MrBeard Отправлено: 24 Сентября, 2011 - 13:15:16 • Тема: CMS На SQL как обнулить GET • Форум: CMS и фреймворки

Ответов: 3
Просмотров: 2742
можно полюбопытствовать, что вот это такое?
PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['ID']))
  2. {
  3. global $ID;$ID = $_GET['ID'];
  4. }else
  5. {
  6. global $ID;$ID = '1';
  7. }


второе - ничерта не понятно, что надо)
MrBeard Отправлено: 24 Сентября, 2011 - 13:04:12 • Тема: Объясните дураку одну штуку. • Форум: Администрирование *nix

Ответов: 4
Просмотров: 1372
по умолчанию в большинстве *nix дистрибутивов # - приглашение рута, % - приглашение обычного пользователя, если я не ошибаюсь
MrBeard Отправлено: 23 Сентября, 2011 - 19:05:10 • Тема: Внешние ключи • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 35
немного непопарсил...
вот хотя бы это - К категории товара я смог сделать внешний ключ на стоку в таблице категорий.
MrBeard Отправлено: 23 Сентября, 2011 - 16:45:20 • Тема: Вывод • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 48
Цитата:
Хотел зделать что-то типа статуса, будут выводится ники игроков из таблицы "Score", если игрок есть в таблице "Admin" - напротив его ника писалось "Adm", если в "Mod" - "Mod", если игрока нет ни там ни там - "plr" Смущение

немного не понятно, почему бы не завести в одной таблице с юзерами поле, где указывать их тип? зачем на каждый тип пользователей создавать отдельную таблицу? просто подумал, как бы сделать запрос, который будет автоматически это всё проставлять, и не представил)
всё, что могу предложить - это что то вроде
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT *
  3. FROM Score
  4. LEFT JOIN Adm
  5. LEFT JOIN Mod
  6.  

а дальше в коде разбора запроса проверять поля из Adm и Mod на null, и при наличии результата проставлять им типы пользователей
MrBeard Отправлено: 21 Сентября, 2011 - 15:39:15 • Тема: Вопрос к матерым об общей идее конструкторов • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 9157
Цитата:
Это PHP приучает так писать безалаберно

писали бы вы на С++ такие ноимера бы не прошли
выкинули исключение с класса а класс остался в памяти
(знаменитая memory leak)
через пару дней бы сервер остался без памяти а еще пару дней бы ушло найти где проблемма

это значит, что исключения развивают безолаберность, а нетипизированность возврата функций - наоборот, ведёт к духовному и профессиональному росту?)
MrBeard Отправлено: 21 Сентября, 2011 - 15:14:11 • Тема: Вопрос к матерым об общей идее конструкторов • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 9157
caballero пишет:
Цитата:
если у вас одна ошибка(неверная комбинация логина и пароля), то и catch будет один.

во первых не один - у вас могут быть иклблючения по работе с БД


если говорить про конкретно этот случай, то catch будет один, потому что обычно абсолютно всё равно, какая причина помешала пользователю залогиниться, результат один - в логине отказано. а если нужно обрабатывать разные ситуации, то catch будет больше, но и IF в вами предложенном решении будет больше ( в самом деле, не будете же вы писать пользователю, что у вас база данных померла.)
по поводу читаемости - тоже прихожу к мысли, что try{}catch{} становится читабельнее, потому что ожидаешь, где искать обработку ошибок, а не выискиваешь её в каждом встречном if.
и catch(SQLException e) выглядит, кстати, красивее, чем if(!is_class($variable) and $variable =="не удалось выполнить запрос");
MrBeard Отправлено: 21 Сентября, 2011 - 14:50:19 • Тема: Вопрос к матерым об общей идее конструкторов • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 9157
caballero пишет:
Цитата:
а потом парсить строку на содержание что бы понять, что с ней делать


Зачем парсить? Вы знаете что это ошибка при чем ошибка наперед известная (неверныая комбинация логина или пароля) вот и выводите

а пятиэтаэный
catch(...)
catch(...)
catch(...)
catch(...)
catch(...)

в каждой функции чем лучше

если у вас одна ошибка(неверная комбинация логина и пароля), то и catch будет один.
А получение экземпляра класса User и его проверка в коде на принадлежность к этому классу вызывают недоумение.
Меня вообще с момента начала изучения слегка напрягает возможность возвращать смешанное значение в PHP, это подразумевает, что после вызова функции я должен ещё и проверять, что же она мне вернула... неприятно.
MrBeard Отправлено: 21 Сентября, 2011 - 11:39:30 • Тема: Вопрос к матерым об общей идее конструкторов • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 9157
caballero пишет:
Проверять валидность в конструкторе - абсурд. Ты создаешь екземпляр класса
разумеется уж валидного. Если ты проверяешь в конструкторе ты УЖЕ создал экземпляр. А если он не валидный и что - прибивать его?
Вообще в конструкторе не принято выполнять действия которые могут вызывть ошибку или исключение (ходить в базу например) - задача конструктора - проинициализировать члены класса.

Плодить иерархию валидаторов - это значит писать "индусский" код и противоречить принципу инкапсуляции.

Самое грамотное - создать в классе СТАТИЧЕСКИЙ метод который будет валидировать данные и возвращать екземпляр класса или там null или false или исключение выбрасывать. Тем более что статический метод будет иметь доступ к приватным членам класса. Да и не нужны в большинстве случаев специфические валидаторы.
В случае с юзером - статический метод login(name,pass)
либо возвращает екземпляр юзера после проверки в БД, либо например строку с описанием ошибки.


я просто почему спрашивал... видел достаточно кода(на яве или шарпах), где проверка валидности данных проходила исключительно внутри класса объекта, и при некорректности просто бросалось исключение, в том числе при первичном заполнении пустого объекта. А во внешнем коде ни о каких проверках уже не было и речи.
С другой стороны, я читал где то о проектировании приложения так, что все данные проверяются сразу на входах, а внутри приложения проходят ТОЛЬКО валидные данные, которые больше нигде не проверяются.

Вот и хотел узнать, как в PHP удобнее или правильнее поступать)

Страниц (7): « 1 2 3 [4] 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB