PHP.SU

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

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

> Найдено сообщений: 86
fdr21 Отправлено: 26 Апреля, 2013 - 13:16:45 • Тема: Проблема с PDO и Хранимой процедуры • Форум: Работа с СУБД

Ответов: 6
Просмотров: 2635
EuGen пишет:

Спасибо, а я то думал что у меня ошибку выводит. Видимо в MySQL еще так нельзя использовать, печально ...
fdr21 Отправлено: 26 Апреля, 2013 - 12:47:24 • Тема: Проблема с PDO и Хранимой процедуры • Форум: Работа с СУБД

Ответов: 6
Просмотров: 2635
EuGen пишет:
Нет.
PHP:
скопировать код в буфер обмена
  1. $stmt->bindParam(1, $date, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT);

Так тоже пробовал, такая же ошибка Недовольство, огорчение
fdr21 Отправлено: 26 Апреля, 2013 - 12:28:30 • Тема: Проблема с PDO и Хранимой процедуры • Форум: Работа с СУБД

Ответов: 6
Просмотров: 2635
EuGen пишет:
Ну так и передавайте как SQL-переменную. Передав $date (в которой, подозреваю, обычный текст) - Вы передаёте обычный строковый литерал с точки зрения процедуры.

Вы имеете в виду
PHP:
скопировать код в буфер обмена
  1.  
  2. // присвоить в $date SQL переменную @var
  3. $date = '@var';
  4. $stmt->bindParam(1, $date, PDO::PARAM_STR);
  5. $stmt->execute();
  6.  

так ведь не получится, ведь PDO в call p(?) поставит call p('@var') @var в кавычках!!!
fdr21 Отправлено: 26 Апреля, 2013 - 11:14:02 • Тема: Проблема с PDO и Хранимой процедуры • Форум: Работа с СУБД

Ответов: 6
Просмотров: 2635
Есть простая процедура возвращающую дату
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE PROCEDURE workpan.p(OUT date DATETIME)
  2.   SQL SECURITY INVOKER
  3. BEGIN
  4.   SELECT now() INTO date ;
  5. END
  6.  


Есть код php
... подключение и всё такое

и при
PHP:
скопировать код в буфер обмена
  1. $sql = 'call p(?)';
  2. $stmt = $this->getDB()->prepare($sql);
  3.  
  4. $stmt->bindParam(1, $date, PDO::PARAM_STR);
  5. $stmt->execute();
  6.  
  7. var_dump($date);exit();


Выдаёт ошибку
CODE (htmlphp):
скопировать код в буфер обмена
  1. SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine workpan.p is not a variable or NEW pseudo-variable in BEFORE trigger


в мануале написано что так можно получить выходной параметр, но почему то не получается
CODE (SQL):
скопировать код в буфер обмена
  1. call p(?) хочет получить переменную, что то вроде call p(@var)


Что делать, хочу использовать это как в мануале Улыбка
Может какие либо настройки нужны прикрутить или же PDO старый что ли ...
fdr21 Отправлено: 26 Апреля, 2013 - 10:34:24 • Тема: Ошибка при вызове процедуры • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 61
Ammiak пишет:
Если написать так:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `id_cat` INTO id_cat, `cat_name` INTO catalog FROM `products` JOIN `catalog` USING (`id_cat`) WHERE `prod_name`='product';
  3.  

выдаёт ошибку:
Цитата:

#1327 - Undeclared variable: cat_name

как можно исправить?


Устарел топик Улыбка
Но может кому не будь пригодится!

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `id_cat` INTO id_cat, `cat_name` INTO catalog FROM `products` JOIN `catalog` USING (`id_cat`) WHERE `prod_name`='product';
  3.  

Правильней кажется будет так
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `id_cat`, `cat_name` INTO id_cat, catalog FROM `products` JOIN `catalog` USING (`id_cat`) WHERE `prod_name`='product';
  3.  

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT столбец1, столбец2 и т.д INTO столбец1, столбец2 и т.д FROM
  3.  
fdr21 Отправлено: 13 Апреля, 2013 - 08:27:39 • Тема: Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене • Форум: Администрирование БД

Ответов: 4
Просмотров: 2075
Zuldek пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.     SELECT * FROM products GROUP BY  repairs_id  ORDER BY shops_rating DESC, products_price ASC


к сожалению это тоже не подходит.

CODE (SQL):
скопировать код в буфер обмена
  1. mysql> SELECT * FROM products;
  2. +-------------+------------+----------------+----------+--------------+
  3. | products_id | repairs_id | products_price | shops_id | shops_rating |
  4. +-------------+------------+----------------+----------+--------------+
  5. |           1 |          1 |            100 |        1 |            9 |
  6. |           2 |          1 |             50 |        2 |            5 |
  7. |           3 |          2 |            100 |        1 |            9 |
  8. |           4 |          2 |             75 |        3 |           10 |
  9. +-------------+------------+----------------+----------+--------------+
  10. 4 rows IN SET (0.00 sec)
  11.  
  12. mysql> SELECT * FROM products GROUP BY  repairs_id  ORDER BY shops_rating DESC, products_price ASC;
  13. +-------------+------------+----------------+----------+--------------+
  14. | products_id | repairs_id | products_price | shops_id | shops_rating |
  15. +-------------+------------+----------------+----------+--------------+
  16. |           1 |          1 |            100 |        1 |            9 |
  17. |           3 |          2 |            100 |        1 |            9 |
  18. +-------------+------------+----------------+----------+--------------+
  19. 2 rows IN SET (0.00 sec)


группировка, сортировка не правильно происходит
По идее правильный вариант будет если он выберит

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. +-------------+------------+----------------+----------+--------------+
  3. | products_id | repairs_id | products_price | shops_id | shops_rating |
  4. +-------------+------------+----------------+----------+--------------+
  5. |           1 |          1 |            100 |        1 |            9 |
  6. |           4 |          2 |             75 |        3 |           10 |
  7. +-------------+------------+----------------+----------+--------------+
  8.  


надо как то все закрутить, уже второй день голову ломаю Однако

Решение найдено.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT
  3.   t1.products_id,
  4.      t1.repairs_id, t1.products_price,
  5.      t1.shops_id, t1.shops_rating
  6.  FROM
  7.   (SELECT repairs_id, max(shops_rating * 100500 - products_price) AS xz
  8.           FROM `products`
  9.           GROUP BY repairs_id
  10.   ) t2
  11.   JOIN `products` t1
  12. ON t1.repairs_id=t2.repairs_id AND t2.xz=(t1.shops_rating * 100500 - t1.products_price);
  13.  

или
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT p.*
  3. FROM products p
  4. WHERE p.products_id =
  5. (SELECT p1.products_id FROM products p1 WHERE p.repairs_id=p1.repairs_id ORDER BY p1.shops_rating DESC, p1.products_price LIMIT 1)
  6.  


Надеюсь кому не будь пригодится, на будущие)
fdr21 Отправлено: 12 Апреля, 2013 - 13:42:51 • Тема: Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене • Форум: Администрирование БД

Ответов: 4
Просмотров: 2075
Zuldek пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM products ORDER BY shops_rating DESC, products_price ASC

По данному запросу я получу все строки, а мне нужно что бы дублирование не было, что бы была группировка по repairs_id - идентификатор запчасти, что бы одна и та же зап-часть не дублировалась

Есть следующий SQL код

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.         t1.products_id,
  3.         t1.repairs_id, t1.products_price,
  4.         t1.shops_id, t1.shops_rating
  5.        
  6.     FROM
  7.         (SELECT repairs_id, MIN(products_price) AS products_price
  8.                 FROM `products`
  9.                 GROUP BY repairs_id
  10.          ) t2
  11.        
  12.     JOIN
  13.         `products` t1 USING(repairs_id, products_price)

Он выбирает товары с самой минимальной ценой.
2 | 1 | 50 | 2 | 3
4 | 2 | 90 | 3 | 5

Рейтинг магазина не учитывается, а нужно что бы для начало было по рейтингу
fdr21 Отправлено: 12 Апреля, 2013 - 13:13:29 • Тема: Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене • Форум: Администрирование БД

Ответов: 4
Просмотров: 2075
Всем привет, нужна помошь.

Имеется следующая таблица товаров
Таблица: products

её колонки
products_id - идентификатор продукции
repairs_id - идентификатор запчасти
products_price - цена продукции
shops_id - магазин
shops_rating - рейтинг маназина

данные

products_id | repairs_id | products_price | shops_id | shops_rating
1 | 1 | 100 | 1 | 5
2 | 1 | 50 | 2 | 3
3 | 2 | 100 | 1 | 5
4 | 2 | 90 | 3 | 5

Нужно выбрать товары тех магазинов у которых рейтинг выше всего, если рейтинг магазинов одинаков, выборку производить из магазинов у которых рейтинг выше всего и цена самая низкая на данный товар
хочу получить следующие

products_id | repairs_id | products_price | shops_id | shops_rating
1 | 1 | 100 | 1 | 5
4 | 2 | 90 | 3 | 5

Можно это как то организовать спомошью SQL запроса?
fdr21 Отправлено: 19 Января, 2013 - 13:19:59 • Тема: Настройка на VPS почты для работы с Яндекс.Почтой для Доменов • Форум: Администрирование *nix

Ответов: 1
Просмотров: 1955
Настройка на VPS почты для работы с Яндекс.Почтой для Доменов.
Подскажите пожалуйста
Как настроить виртуальный хостинг, что бы он почту отправлял не в локальный каталог. А по записамь MX?

Проблема в том что я подключил к своему домену почту от Яндек.Домена.
При отправке почты с сайта, на свой домен (допустим домен domain.ru) pochta@domain.ru, письма поподают в локальный каталог а должны отправлятся по записамь MX. на Яндекс Почту для Доменов.
уже бытый день Гуглю, не как что то не соображаю.
Может кто не будь уже настраивал. Скиньте сылку очень прощу как это сделать. Или же если не трудно опишите где что подправить.

OS: CentOS 5
Кажется почта отправляется по sendmail или devecot
Заранее Спасибо!!!
fdr21 Отправлено: 20 Ноября, 2012 - 08:58:08 • Тема: Выборка из таблици товар с минимальной ценой • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 128
Zuldek пишет:
fdr21 пишет:
Уникальный ключь таблици этого поля не верен

Что это означает?
Explain


Если вы запускаете данный запрос то вам возвращяется не тот Уникальный ключь таблици,

Нашел решение как это можно реализовать здесь:
http://sqlinfo[dot]ru/forum/viewtopic.php?id=6240
fdr21 Отправлено: 20 Ноября, 2012 - 07:39:20 • Тема: Выборка из таблици товар с минимальной ценой • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 128
Имеется таблица: products
Поля:
Уникальный ключь | Идентификатор товара | Цена товара
products_id | repairs_id | products_price |

Нужно выбрать поля, с минимальной ценой.
Делаю так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.     products_id, repairs_id, min(products_price) AS min
  3.  
  4. FROM
  5.     products
  6.  
  7. GROUP BY
  8.     repairs_id


Уникальный ключь таблици уникальный,
Идентификатор товара - не уникален, в данной таблице может существовать несколько товаров с разными ценами.
Мне нужно выбрать только те товары только с минимальной ценой в группе.
При запросе привиденном вище, он даёт товары с минимальной ценой, НО Уникальный ключь таблици этого поля не верен.
База данных mysql

Как нужно правильней составить запрос?
fdr21 Отправлено: 27 Июня, 2012 - 09:14:41 • Тема: сокет • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1181
Цитата:
AJAX нельзя задействовать по идеологическим соображениям?

Наверное можно, но Я еще до AJAX не дорос)))
fdr21 Отправлено: 27 Июня, 2012 - 09:11:13 • Тема: PHP cache class • Форум: Вопросы новичков

Ответов: 5
Просмотров: 283
при беглом взгяде по моему после
$cache =new cacheClass();
нужно вызвать
$cache->start()
а потом уже $cache->ag_ob_start();
fdr21 Отправлено: 27 Июня, 2012 - 08:59:01 • Тема: сокет • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1181
Цитата:
ну а если чат организовать нужно !?

как насчет рефреша в мета теге, с определенном интервалом!
fdr21 Отправлено: 27 Июня, 2012 - 08:56:48 • Тема: Как узнать, online ли определённый пользователь или offline? • Форум: Вопросы новичков

Ответов: 4
Просмотров: 219
Цитата:
Если разница между текущим временем и временем действия меньше допустим 5 минут - пользователь считается онлайн. Если больше - оффлайн.

Хорошая идея, вполне сойдет!

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB