PHP.SU

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

Страниц (23): В начало « ... 12 13 14 15 [16] 17 18 19 20 ... » В конец

> Найдено сообщений: 339
alnik-75 Отправлено: 23 Мая, 2013 - 14:24:28 • Тема: Запрос к БД • Форум: Вопросы новичков

Ответов: 2
Просмотров: 109
Дорогие форумчане! Добрый день.
В БД есть таблица с товаром и его продавцами.
Необходимо вывести всех пользователей и указать количество принадлежащих каждому единиц товара.
Делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT DISTINCT `prodavec` FROM `table`
  3.  

получаем массив с уникальными продавцами
Прогоняем его через цикл while. В процессе цикла получаем количество товаров, числящихся за каждым продавцом
PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT COUNT(*) AS count FROM declarations WHERE prodavec=$prodavec
  3.  

Получается куча запросов, выполняемых в цикле. А если таких продавцов несколько сотен и каждого несколько сотен единиц товара?
Является ли мое решение более или менее оптимальным?
Имеется ли более подходящее для этой задачи решение.

Буду благодарен за ответы
alnik-75 Отправлено: 21 Мая, 2013 - 14:37:40 • Тема: парсер валют • Форум: Вопросы новичков

Ответов: 2
Просмотров: 379
xml-это темный лес для меня
(Добавление)
Stierus пишет:
Зачем что-то грабить, если они предоставляют свои данные и в виде сервисов и в xml-формате и как rss-ленту?

http://www[dot]nbrb[dot]by/Services/XmlE[dot][dot][dot]ndate=01/31/2011 например

если есть возможность-помогите решить эту задачу
alnik-75 Отправлено: 21 Мая, 2013 - 13:33:21 • Тема: парсер валют • Форум: Вопросы новичков

Ответов: 2
Просмотров: 379
Добрый день, уважаемые Форумчане! Помогите пожалуйста....
Как то я уже обращался с подобной проблемой и мне помогли найти ее решение. Теперь немножко условия поменялись, а сам я с регулярными выражениями совсем не дружу.
Есть сайт Национального банка Республики Беларусь с ежедневно устанавливаемыми им курсами иностранных валют:http://www[dot]nbrb[dot]by/statistics/Ra[dot][dot][dot]s/RatesDaily[dot]asp
Как получить курсы доллара и евро с этой странице мне помогли. Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $parser=file_get_contents('http://www.nbrb.by/statistics/Rates/RatesDaily.asp');
  3. if(preg_match('/1 доллар США<td>([\d\s\.]+)/',$parser,$matches))
  4. {
  5.         $kursUSD=preg_replace("/[^x\d|*\.]/","",substr($matches[1],0,-3));
  6.         echo $kursUSD;
  7.  
  8. }else{echo 'Получить курс USD не удалось. Введите его вручную!';}
  9. if(preg_match('/1 евро<td>([\d\s\.]+)/',$parser,$matches))
  10. {
  11.         $kursEUR=preg_replace("/[^x\d|*\.]/","",substr($matches[1],0,-3));
  12.         echo $kursEUR;
  13.  
  14. }else{echo 'Получить курс EUR не удалось. Введите его вручную!';}
  15. ?>
  16.  

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

На указанной странице есть строка:
"Официальный курс белорусского рубля по отношению к иностранным валютам, устанавливаемый Национальным банком Республики Беларусь ежедневно, на 22.05.2013"
Помогите получить указанную в ней дату-в данном случае это 22.05.2013.

Заранее выражаю благодарность за оказанную помощь
alnik-75 Отправлено: 18 Мая, 2013 - 12:31:28 • Тема: как провально построить запрос на выборку из БД • Форум: Вопросы новичков

Ответов: 7
Просмотров: 215
Спасибо Мелкий!!!!!!! Твое решение помогло

ORDER BY price=0, price

Хотя и так тоже работает:ORDER BY price>0 DESC, price


Так что и ЕУген тоже спасибо
alnik-75 Отправлено: 18 Мая, 2013 - 12:12:45 • Тема: как провально построить запрос на выборку из БД • Форум: Вопросы новичков

Ответов: 7
Просмотров: 215
Морозов Семен пишет:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM tovari ORDER BY price DESC";

в данном случае товар с ценой, равной 0, расценивается, как самый дешевый
alnik-75 Отправлено: 18 Мая, 2013 - 12:11:57 • Тема: как провально построить запрос на выборку из БД • Форум: Вопросы новичков

Ответов: 7
Просмотров: 215
EuGen пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` ORDER BY `price`>0, `price`

?
Надеюсь, этот запрос будет не провальным, а правильным

Ошибку заметил еще ранее, но не знал как ее исправить. Спасибо за ответ оперативный. Сейчас буду пробовать
alnik-75 Отправлено: 18 Мая, 2013 - 12:03:41 • Тема: как провально построить запрос на выборку из БД • Форум: Вопросы новичков

Ответов: 7
Просмотров: 215
Добрый день уважаемые форумчане!!! Есть одна проблема, которую, как я надеюсь, вы поможете мне решить.
Ситуация: В таблице хранятся сведения о товарах, в том числе и об их ценах. Цены хранятся в формате INT. В случае, если цена не введена, то в таблице по умолчанию она будет равна 0.
Далее, необходимо сделать выборку с сортировкой по цене, начиная от самых дешевых.
Вот здесь и проблема. Вначале выводятся товара с не введенной ценой( а она, как уже сказано, в базе равна 0). Как сделать так, чтобы сначала выводились и сортировались, соответственно, товры с ценой свыше 0, а затем выводились товары с ценой 0.

Извините, я не являюсь специалистом в PHP, поэтому может и не могу придумать оптимальное без двух последовательных выборок(сначала выбираем с ценой>0, а затем с равной 0) решение.
Подскажите возможна ли такая сортирвка в рамках одной выборки?

Заранее благодарен за помощь
alnik-75 Отправлено: 14 Мая, 2013 - 23:06:03 • Тема: Как правильно построить запрос к БД! • Форум: Вопросы новичков

Ответов: 26
Просмотров: 859
спасибо еще раз
alnik-75 Отправлено: 14 Мая, 2013 - 22:52:46 • Тема: Как правильно построить запрос к БД! • Форум: Вопросы новичков

Ответов: 26
Просмотров: 859
БЛИН! ЧТО ТО ЭТА СТАТЬЯ не смогла помочь мне в решении моего последнего вопроса насчет существования записей в таблице
alnik-75 Отправлено: 14 Мая, 2013 - 22:37:28 • Тема: Как правильно построить запрос к БД! • Форум: Вопросы новичков

Ответов: 26
Просмотров: 859
Спасибо, Илья!
(Добавление)
а ЕСЛИ МНЕ НЕ НУЖНО ПОДСЧИТЫВАТЬ, КОЛИЧЕСТВО ЗАПИСЕЙ, А ПРОСТО НУЖНО УСТАНОВИТЬ ЕСТЬ ЛИ ОНИ ВООБЩЕ? КАК В ЭТОМ СЛУЧАЕ НУЖНО ПОСТУПАТЬ?
alnik-75 Отправлено: 14 Мая, 2013 - 22:29:35 • Тема: Как правильно построить запрос к БД! • Форум: Вопросы новичков

Ответов: 26
Просмотров: 859
DeepVarvar пишет:
Правильным будет два запроса, т.к. если записей будет уже 20 тысяч, то все они приедут в скрипт и займут столько памяти, сколько уже не хватит по лимитам в php.ini.

То есть mysqli_num_rows и один запрос можно использовать, если достоверно известно, что записей не так много?
alnik-75 Отправлено: 14 Мая, 2013 - 22:10:33 • Тема: Как правильно построить запрос к БД! • Форум: Вопросы новичков

Ответов: 26
Просмотров: 859
Добрый вечер! Имеется задача-сделать выборку записей из БД и заодно посчитать количество выбранных записей. Знаю два варианта
ПЕрвый:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result=mysqli_query($db,'SELECT * FROM tablica ');
  3. $count=mysqli_num_rows($result); -получаем количество записей
  4. $rows=mysqli_fetch_assoc($result); -собственно выборка
  5.  

Есть и второй вариант с двумя выборками:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysqli_query($db,'COUNT(*) AS count FROM tablica ');
  3. $count = mysqli_fetch_array($result);  -получаем количество записей
  4. $result1=mysqli_query($db,'SELECT * FROM tablica ');
  5. $rows=mysqli_fetch_assoc($result1); -собственно выборка
  6.  


Мне кажется более приемлемым первый вариант из-за того, что обращение к БД однократное, но в тоже время я много раз видел использование и второго варианта, например при постраничной навигации.

Что же все таки будет правильным? Посоветуйте.... Спасиббо........
alnik-75 Отправлено: 01 Мая, 2013 - 13:08:47 • Тема: Вывод результатов выборки из БД • Форум: Вопросы новичков

Ответов: 8
Просмотров: 320
LIME пишет:
а до этого как было? код

код я не писал. И тот, что выше я набрасывал прямо сейчас. Просто я читал про рекурсивные функции, которые вызывают сами себя в теле функции. В том направлении нужно копать? Может есть пример такой функции у Вас?
alnik-75 Отправлено: 01 Мая, 2013 - 12:51:22 • Тема: Вывод результатов выборки из БД • Форум: Вопросы новичков

Ответов: 8
Просмотров: 320
LIME пишет:
так почему же не передать и искомый category
тогда
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `category` FROM `declar_category` WHERE `pid`=$pid AND `id`!=$id
и всё

Логично.... то есть передать не только id, но и само название пункта меню, который должен выводиться первым, и для него не делать выборку, а просто первым пунктом прописать переданное название. А выборку сделать, исключая этот пункт. Я правильно понимаю.? Небольшое уточнение. У этих подпунктов меню будут еще подпункты более низкого уровня, включая и тот, который выводится первым без выборки. Соответственно, придется еще две выборки делать-для первого пункта меню, который сформировался на основании переданных данных, а также и остальных. Тут нужно делать выборку в выборке?

Страниц (23): В начало « ... 12 13 14 15 [16] 17 18 19 20 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB