PHP.SU

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

Страниц (289): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец

> Найдено сообщений: 4334
Champion Отправлено: 12 Декабря, 2011 - 18:09:15 • Тема: Достаю из базы sql запрос с переменными. как подставить переменную? • Форум: Хранение данных, их вывод и обработка

Ответов: 4
Просмотров: 2627
Либо нужно вычислить эту строку eval-ом, тогдла в нее подставится переменная, либо хранить запрос с плейс-холдерами(штуки типа ? или ?s или :param1 - смотря, чем пользоваться), препарировать(prepare), биндить параметры и екзекутить.
Подробнее гугл-> sql prepare execute.
А вообще хранить в базе sql запросы - немного глупо, по-моему
Champion Отправлено: 11 Декабря, 2011 - 18:47:48 • Тема: Выборка mysql • Форум: Вопросы новичков

Ответов: 12
Просмотров: 408
Ну да, тогда в 2 запроса
Champion Отправлено: 11 Декабря, 2011 - 18:36:33 • Тема: Выборка mysql • Форум: Вопросы новичков

Ответов: 12
Просмотров: 408
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM tbl
  3. WHERE name IN (
  4.   SELECT name
  5.   FROM tbl
  6.   GROUP BY name
  7.   ORDER BY name
  8.   LIMIT 495, 5
  9. )
  10.  

но вообще это не будет быстро работать. Чтоб работало быстро, надо поделать всякие извращения типа периодического перенумеровывания таблицы или еще чего-нибудь
Champion Отправлено: 11 Декабря, 2011 - 18:28:52 • Тема: Запутался • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 16
триггером
Champion Отправлено: 06 Декабря, 2011 - 20:30:23 • Тема: Упрощение выражения • Форум: Хранение данных, их вывод и обработка

Ответов: 8
Просмотров: 2387
ВэйДлин пишет:
СПБКИТ
Ну тоже КИТ)
Данил_123 пишет:
типов решений достаточно много
Ну да, я оговорился о том, что самое простое - без степеней - умножение и сложение.
Не думаю, что задача сложнее и в примере этого нет. Если сложнее, то тут простым описанием не напишешь
Champion Отправлено: 06 Декабря, 2011 - 20:00:57 • Тема: Упрощение выражения • Форум: Хранение данных, их вывод и обработка

Ответов: 8
Просмотров: 2387
Это довольно сложная задача. Даже если кроме умножения и сложения в строке ничего нет. Если там показательные уравнения, логарифмы и производные - то это уже супер сложная задача.
Если плюсы и умножения(без возведения в степень), то:
1. Раскрываем скобки
2. Переносим все слагаемые с иксом влево, без икса - вправо
3. Выносим Х за скобку
4. Делим правую часть на скобку возле икса.

Самое сложное - первый пункт. Скорее всего нужно построить синтаксическое дерево. Его узлами будет такая структура:
struct {
operation;
operand1;
operand2;
}
operation - сложение или умножение, операнды - это операнды. Они могут быть как числами, так и такими же структурами.
В PHP это удобно ассоциативным массивом реализовать.
Как его формировать? Рекурсивно. Функция tree():
- Скобка открылась - передаем дальнейшую часть в функцию tree();
- Скобка открылась - выходим из функции.
- Число - нашли операнд - +-/* - нашли оператор. Изначально всё выражение можно обернуть в скобки перед первым вызовом функции для общности.
Теперь можно раскрывать скобки - от самого нижнего уровня дерева. Раскрыли скобки самого нижнего уровня, предпоследний уровень стал нижним и так до верху.
Теперь получилась простая для разбора строка, с которой уже можно работать функциями обработки строк. Берем коэффициенты перед иксом и формируем из них делитель для правой части.
ВэйДлин пишет:
Студент колледжа информационных технологий
не МГКИТ?)

PS Надо бы сделать чтоб один и тот же топик был всегда доступен по одной и той же ссылки, куда бы его не переносили. Во-первых, эта ссылка шлется автору топика при создании темы. Во-вторых, индексируется поисковиками. В-третьих, пока я писал этот длинный ответ, модератор перенес тему и вместо сохранения поста я увидел "такой темы не существует" - потмоу что ссылка поменялась. Хорошо, что есть файрбаг и я смог вытащить то, что писал. Иначе я бы расстроился
Champion Отправлено: 06 Декабря, 2011 - 17:35:24 • Тема: Вопрос о If • Форум: Вопросы новичков

Ответов: 6
Просмотров: 249
preg_match('/0[12]|12/',$month[1]) - так короче)
Champion Отправлено: 04 Декабря, 2011 - 19:45:04 • Тема: Проблема с регулярными выражениями. • Форум: Вопросы новичков

Ответов: 1
Просмотров: 105
/^[1-9+-]\d+$/
(Добавление)
Ваша регулярка тоже правильно написано, в ней нет ошибки. Если только "явлаются ли ВСЕ следующие символы цифрами от 0 до 9", то надо заякорить на конец строки вот этой штукой $
Champion Отправлено: 04 Декабря, 2011 - 19:13:15 • Тема: Несколько операторов && подряд • Форум: Вопросы новичков

Ответов: 20
Просмотров: 808
Oleh пишет:
if($log=='' && $psw=='' && $email='')
Если вы это копировали, то ошибка прям тут. Тут происходит присваивание, а результат такого присваивания - false.
Oleh пишет:
А то если я сначала буду
А если на форме хотя бы 5 обязательных полей?
PHP:
скопировать код в буфер обмена
  1. $errors = array();
  2. if (empty($email)) $errors[] = 'Пустой емейл';
  3. if (empty($login)) $errors[] = 'Пустой логин';
  4. if (empty($password)) $errors[] = 'Пустой пароль';
  5.  
  6. if (!empty($errors)) {
  7. // были ошибки
  8. } else {
  9. // не было ошибок
  10. }

(Добавление)
DlTA пишет:
тут будет true
Будет пустая строка - false)
Champion Отправлено: 04 Декабря, 2011 - 19:02:12 • Тема: Этот хитрый return • Форум: Вопросы новичков

Ответов: 4
Просмотров: 200
Самогонщик пишет:
Я смотрел на этом сайте, но не нашёл чёткого ответа.
Так ты ж сам и дал ответ) Там по ссылке просто поподробнее
Champion Отправлено: 04 Декабря, 2011 - 18:52:23 • Тема: Этот хитрый return • Форум: Вопросы новичков

Ответов: 4
Просмотров: 200
Да, именно так и есть
(Добавление)
http://ru2.php.net/manual/ru/function.return.php
Champion Отправлено: 04 Декабря, 2011 - 18:23:06 • Тема: Несколько операторов && подряд • Форум: Вопросы новичков

Ответов: 20
Просмотров: 808
Самогонщик пишет:
Расскажи как сказывается?
Когда вот в таком виде (!a() && !b() and !c()), то никак - какими бы там приоритетными не были && и and, когда других операторов нету, они все равно выполнятся слева на право.
А вот если есть, например плюсы или присваивание, то разница заметнее. Например
$a = true and false; // $a будет true
$b = true && false; // будет false
Champion Отправлено: 04 Декабря, 2011 - 18:04:50 • Тема: Несколько операторов && подряд • Форум: Вопросы новичков

Ответов: 20
Просмотров: 808
Bio man пишет:
то есть с начало будет проверено на истину переменная $b и $c и затем будет проверена переменная $a
Во-первых, пишется "сначала". А во-вторых на самом деле сначала будет проверена переменная А, потом Б и Ц.
Приоритет у and ниже, чем у &&, но это сказывается не так.
А еще и and, и && прекращают выполняться как только накнутся на первый false, так что объяснения примеров некорректны.

Перечитал еще раз вопрос
Oleh пишет:
только если все три переменные имеют пустое значение, а не одна или две из них.
Ну тогда всё правильно у вас написано. В чем проявляется "ошибка" ? И что до условия происходит с А, Б и Ц?
(Добавление)
Самогонщик пишет:
Ты о ленивости?
Да, о ленивости тоже. Мне сначала показалась, что его ошибка с приоритетами более неправильная, чем есть на самом деле. На самом деле она не большая)
Champion Отправлено: 04 Декабря, 2011 - 17:58:38 • Тема: Несколько операторов && подряд • Форум: Вопросы новичков

Ответов: 20
Просмотров: 808
Во-первых, если надо проверить, что хотя бы одна переменная пустая, то это не И, а ИЛИ. Во-вторых, Bio man написал глупости. Сейчас расскажу какие
Champion Отправлено: 04 Декабря, 2011 - 14:23:51 • Тема: Индексы в запросах • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 42
Третий запрос, если должен найти категории, у которых нет дочерних категорий, то ему нужны те же индексы по id и parent_id.
Возможно, что его стоит переписать так:
SELECT ca1.name
FROM category ca1
LEFT JOIN category ca2 ON c1.id = ca2.parent_id
WHERE ca2.id is null
Тогда он сможет (если СУБД решит использовать merge join) выполниться за N+N операций
(Добавление)
romanov пишет:
На самом деле второй запрос выглядит так:
romanov пишет:
Выбрать все категории нижнего уровня т.е. не имеющих детей.
Так я и понял. Ответил)

Страниц (289): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB