PHP.SU

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

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

> Найдено сообщений: 48
byfahrenheit Отправлено: 24 Сентября, 2011 - 14:06:14 • Тема: Считаем строки в таблице • Форум: Работа с СУБД

Ответов: 12
Просмотров: 3395
caballero пишет:
ты выбираешь в select два поля а инсертишь одно

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

то выдает ошибку:
#1136 - Column count doesn't match value count at row 1
byfahrenheit Отправлено: 24 Сентября, 2011 - 13:57:50 • Тема: Считаем строки в таблице • Форум: Работа с СУБД

Ответов: 12
Просмотров: 3395
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO test (eventId) VALUES ("SELECT eventId, COUNT(eventId) FROM w_records GROUP BY eventId")

я наверно сильно туплю, но сделал так, и в таблицу добавляется все время ноль.

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

то выводит ID и количество (так, как надо), а если подставить в запрос создания/обновления таблицы - то не добавляет данные
byfahrenheit Отправлено: 24 Сентября, 2011 - 13:12:02 • Тема: Считаем строки в таблице • Форум: Работа с СУБД

Ответов: 12
Просмотров: 3395
Добрый день.
Появилась необходимость подсчитать строки, с одинаковыми ID. например:
Есть таблица_1:
id
1
2
3
2
2
3

Нужно подсчитать количество одинаковых ID, и записать в другую таблицу:
id num
1 1
2 3
3 2

Первую часть (т.е. получения количества одинаковых ID) делаю так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, COUNT(*) FROM TABLE GROUP BY id


А вот как правильно записать все это в другую таблицу, без того, что-бы ставить запрос в цикл - я не знаю. Ибо если поставить запрос в цикл - то с моем случае он будет обрабатывается свыше 80 раз...
byfahrenheit Отправлено: 20 Сентября, 2011 - 21:07:43 • Тема: Выборка из таблицы без цикла • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2171
Не правильно выразился: "не рекомендуется".. =)
byfahrenheit Отправлено: 20 Сентября, 2011 - 14:52:05 • Тема: Выборка из таблицы без цикла • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2171
Спасибо. Уже понял в чем ошибался) Просто читал что нельзя вставлять запрос в цикл, так почему-то взял себе в голову, что в данном случае запрос в цикле...
Спасибо за ответ)
byfahrenheit Отправлено: 19 Сентября, 2011 - 21:30:37 • Тема: Выборка из таблицы без цикла • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2171
Как-бы я написал:
Цитата:
т.к. в моем случае нужно будет вывести от 5 до 10 строк, получится что запрос обработается от 5 до 10 раз


Ну а дальше понятно - как минимум человек 10 будут находится на странице со скриптом, и время от времени перезагружать, + ко всему, будут еще и другие запросы на странице подобного типа. вот и хочу понять как минимизировать запросы к бд
byfahrenheit Отправлено: 19 Сентября, 2011 - 20:56:28 • Тема: Выборка из таблицы без цикла • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2171
Здравствуйте.
Возможно подобный вопрос уже задавался, но ответа не нашел.
В общем надо сделать выбору из БД, без использования циклов.
Для примера есть код:
PHP:
скопировать код в буфер обмена
  1.  
  2. ......................
  3. // Записать запрос в переменную
  4. $query = "SELECT * FROM books NATURAL JOIN authors";
  5. // Исполнить запрос
  6. $result = mysql_query( $query );
  7. if (!$result)
  8. {
  9. die("Невозможно исполнить запрос к базе данных: <br />". mysql_error());
  10. }
  11. // Получить и отобразить результаты
  12. while ($result_row = mysql_fetch_row(($result)))
  13. {
  14. // echo 'Название: '.$result_row[1] . '<br />';
  15. echo Title: '.$result_row[1] . '<br />';
  16. // echo 'Автор: '.$result_row[4] . '<br /> ';
  17. echo 'Author: '.$result_row[4] . '<br /> ';
  18. // echo 'Страниц: '.$result_row[2] . '<br /><br />';
  19. echo 'Pages: '.$result_row[2] . '<br /><br />';
  20. }
  21. // Закрыть соединение
  22. mysql_close($connection);
  23. ?>

который выведет следующие:
Title: Linux in a Nutshell<br />Author: Ellen Siever<br />Pages: 476<br />
<br />Title: Linux in a Nutshell<br />Author: Aaron Weber<br />Pages: 476<br
/>
<br />Title: Classic Shell Scripting<br>Author: Arnold Robbins<br />Pages:
256<br />
<br />Title: Classic Shell Scripting<br />Author: Nelson H.F. Beebe<br />Pages:
256<br /><br />

Нужно добиться того же результата, но без использования цикла

т.к. в моем случае нужно будет вывести от 5 до 10 строк, получится что запрос обработается от 5 до 10 раз

Заранее признателен за ответ.
byfahrenheit Отправлено: 08 Сентября, 2011 - 22:10:27 • Тема: Отбор по нескольким критериям • Форум: Работа с СУБД

Ответов: 2
Просмотров: 1054
Спасибо. Уже так и сделал =)
byfahrenheit Отправлено: 07 Сентября, 2011 - 20:58:55 • Тема: Отбор по нескольким критериям • Форум: Работа с СУБД

Ответов: 2
Просмотров: 1054
Здравствуйте.
Не знаю насколько название темы соответствует моей проблеме, но постараюсь пояснить как можно понятней.
Есть 4 таблицы, в каждую из которых надо подставить значение, и получить результат следующего типа: если в результате ноль строк, то выполняется скрипт, иначе - не выполняется.
Проблема возникла в составлении самого запроса. Получается что есть 4 таблицы, в каждую из которых надо подставить каждое из четырех значений для проверки. Что-бы было более понятно - покажу пример:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM users WHERE driver_1 = '$driver_1' OR driver_1 = '$driver_2' OR driver_1 = '$driver_3' OR driver_1 = '$driver_4' OR ..........еще много буковок.......... OR driver_4 = '$driver_1' OR driver_4 = '$driver_2' OR driver_4 = '$driver_3' OR driver_4 = '$driver_4'


Как лучше всего записать запрос?

P.S. Что бы не было вопросов типо: "Зачем это надо", я сразу дам ответ:
Юзер вводит в каждую из четырех форм определенное значение, которое в свою очередь должно проверить на наличие такого же значения в каждой из четырех таблиц. Если хоть одно из значений совпадает - скрипт выводит сообщение о том, что данное значение уже занесено в БД.
byfahrenheit Отправлено: 02 Сентября, 2011 - 23:52:27 • Тема: Как лучше проверять данные? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 98
Спасибо большое) Буду работать) Улыбка
byfahrenheit Отправлено: 02 Сентября, 2011 - 23:29:04 • Тема: Как лучше проверять данные? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 98
Здравствуйте.
Пишу свой скрипт, суть которого закачается в том, что пользователь заполняет формы, после чего данные записываются в БД.
Возник вопрос по безопасности:
как лучше защитить сайт? Какие лучше функции использовать для проверки данных, вводимых пользователем? например запрещать слеши и подобные спецсимволы - не вариант, так как в поле надо вводить ссылку на сайт/изображение.

И еще одно: какие именно символы надо запрещать, что-бы обезопасить сайт от взлома.
Заранее благодарю за ответ.
byfahrenheit Отправлено: 20 Июля, 2011 - 13:35:32 • Тема: Кєширование GD изображений на стороне клиента • Форум: Графика в PHP

Ответов: 11
Просмотров: 4283
Спасибо. Так и сделаю...
p.s. Жаль не могу поставить +, не хватает сообщений
byfahrenheit Отправлено: 19 Июля, 2011 - 22:22:29 • Тема: Кєширование GD изображений на стороне клиента • Форум: Графика в PHP

Ответов: 11
Просмотров: 4283
Спасибо всем большое) Прощу прощение если что не так)
Ввобщем сделал следующим образом:
Если картинки нет на сервере или она устаревшая, то скрипт обрабатывает ее и загружает на сервер. (в принципе изначально так думал сделать, но там были проблемы с моем скрипте, из-за которых скрипт тупил. теперь проблему исправил, и все работает)

Что-бы картинки не накапливались в директории, хотелось бы сделать авто очистку директории в заданное время, не зависимо от запроса скрипта. Не подскажете как лучше реализовать?
byfahrenheit Отправлено: 19 Июля, 2011 - 21:14:12 • Тема: Кєширование GD изображений на стороне клиента • Форум: Графика в PHP

Ответов: 11
Просмотров: 4283
Это я знаю, но тут никак на стороне сервера, т.к.:
Запрос все равно будет следовать на сервер, т.е. картинка будет опять-же долго грузиться.

Вот для примера: http://g[dot]nfs-s[dot]com/4218/nfsw_MACROSDHC[dot]png
тут явно стоит кэширование на стороне клиента, т.к. при первой загрузке картинка дольше грузится, а при последующей - моментально.
byfahrenheit Отправлено: 19 Июля, 2011 - 20:59:01 • Тема: Кєширование GD изображений на стороне клиента • Форум: Графика в PHP

Ответов: 11
Просмотров: 4283
Беру например этот пример:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Кеширование локальными клиентами и использование в течение 1 часа
  3. header("cache-control: private, max-age = 3600");
  4. echo "<h1>", date("H:i:s"), "</h1>";
  5. ?>

насколько я понял, он должен закэшировать текущее время на 1 час. В результате после обновления страницы - время обновляется....

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB