PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (6): [1] 2 3 4 5 6 »
Найдено сообщений: 86
fdr21
Отправлено: 26 Апреля, 2013 - 12:28:30 • Тема: Проблема с PDO и Хранимой процедуры • Форум: Работа с СУБД
Ответов: 6 Просмотров: 2613
EuGen пишет: Ну так и передавайте как SQL-переменную. Передав $date (в которой, подозреваю, обычный текст) - Вы передаёте обычный строковый литерал с точки зрения процедуры.
Вы имеете в виду
PHP:
скопировать код в буфер обмена
// присвоить в $date SQL переменную @var
$date = '@var' ;
$stmt -> bindParam ( 1, $date , PDO:: PARAM_STR ) ;
$stmt -> execute ( ) ;
так ведь не получится, ведь PDO в call p(?) поставит call p('@var') @var в кавычках!!!
fdr21
Отправлено: 26 Апреля, 2013 - 11:14:02 • Тема: Проблема с PDO и Хранимой процедуры • Форум: Работа с СУБД
Ответов: 6 Просмотров: 2613
Есть простая процедура возвращающую дату
Есть код php
... подключение и всё такое
и при
PHP:
скопировать код в буфер обмена
$sql = 'call p(?)' ;
$stmt = $this -> getDB ( ) -> prepare ( $sql ) ;
$stmt -> bindParam ( 1, $date , PDO:: PARAM_STR ) ;
$stmt -> execute ( ) ;
Выдаёт ошибку
CODE (
htmlphp ):
скопировать код в буфер обмена
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
в мануале написано что так можно получить выходной параметр, но почему то не получается
Что делать, хочу использовать это как в мануале
Может какие либо настройки нужны прикрутить или же PDO старый что ли ...
fdr21
Отправлено: 26 Апреля, 2013 - 10:34:24 • Тема: Ошибка при вызове процедуры • Форум: SQL и Архитектура БД
Ответов: 7 Просмотров: 56
Ammiak пишет: Если написать так:
CODE (
SQL ):
скопировать код в буфер обмена
SELECT `id_cat` INTO id_cat, `cat_name` INTO catalog FROM `products` JOIN `catalog` USING ( `id_cat` ) WHERE `prod_name` = 'product' ;
выдаёт ошибку:
Цитата:
#1327 - Undeclared variable: cat_name
как можно исправить?
Устарел топик
Но может кому не будь пригодится!
CODE (
SQL ):
скопировать код в буфер обмена
SELECT `id_cat` INTO id_cat, `cat_name` INTO catalog FROM `products` JOIN `catalog` USING ( `id_cat` ) WHERE `prod_name` = 'product' ;
Правильней кажется будет так
CODE (
SQL ):
скопировать код в буфер обмена
SELECT `id_cat` , `cat_name` INTO id_cat, catalog FROM `products` JOIN `catalog` USING ( `id_cat` ) WHERE `prod_name` = 'product' ;
fdr21
Отправлено: 13 Апреля, 2013 - 08:27:39 • Тема: Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене • Форум: Администрирование БД
Ответов: 4 Просмотров: 2059
к сожалению это тоже не подходит.
CODE (
SQL ):
скопировать код в буфер обмена
mysql> SELECT * FROM products;
+ -------------+------------+----------------+----------+--------------+
| products_id | repairs_id | products_price | shops_id | shops_rating |
+ -------------+------------+----------------+----------+--------------+
| 1 | 1 | 100 | 1 | 9 |
| 2 | 1 | 50 | 2 | 5 |
| 3 | 2 | 100 | 1 | 9 |
| 4 | 2 | 75 | 3 | 10 |
+ -------------+------------+----------------+----------+--------------+
4 rows IN SET ( 0. 00 sec)
mysql> SELECT * FROM products GROUP BY repairs_id ORDER BY shops_rating DESC , products_price ASC ;
+ -------------+------------+----------------+----------+--------------+
| products_id | repairs_id | products_price | shops_id | shops_rating |
+ -------------+------------+----------------+----------+--------------+
| 1 | 1 | 100 | 1 | 9 |
| 3 | 2 | 100 | 1 | 9 |
+ -------------+------------+----------------+----------+--------------+
2 rows IN SET ( 0.00 sec)
группировка, сортировка не правильно происходит
По идее правильный вариант будет если он выберит
CODE (
SQL ):
скопировать код в буфер обмена
+ -------------+------------+----------------+----------+--------------+
| products_id | repairs_id | products_price | shops_id | shops_rating |
+ -------------+------------+----------------+----------+--------------+
| 1 | 1 | 100 | 1 | 9 |
| 4 | 2 | 75 | 3 | 10 |
+ -------------+------------+----------------+----------+--------------+
надо как то все закрутить, уже второй день голову ломаю
Решение найдено.
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
t1. products_id,
t1. repairs_id, t1. products_price,
t1. shops_id, t1. shops_rating
FROM
( SELECT repairs_id, max( shops_rating * 100500 - products_price) AS xz
FROM `products`
GROUP BY repairs_id
) t2
JOIN `products` t1
ON t1. repairs_id= t2. repairs_id AND t2. xz= ( t1. shops_rating * 100500 - t1. products_price) ;
или
CODE (
SQL ):
скопировать код в буфер обмена
SELECT p.*
FROM products p
WHERE p. products_id =
( 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 )
Надеюсь кому не будь пригодится, на будущие)
fdr21
Отправлено: 12 Апреля, 2013 - 13:42:51 • Тема: Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене • Форум: Администрирование БД
Ответов: 4 Просмотров: 2059
По данному запросу я получу все строки, а мне нужно что бы дублирование не было, что бы была группировка по repairs_id - идентификатор запчасти, что бы одна и та же зап-часть не дублировалась
Есть следующий SQL код
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
t1. products_id,
t1. repairs_id, t1. products_price,
t1. shops_id, t1. shops_rating
FROM
( SELECT repairs_id, MIN( products_price) AS products_price
FROM `products`
GROUP BY repairs_id
) t2
JOIN
`products` t1 USING ( repairs_id, products_price)
Он выбирает товары с самой минимальной ценой.
2 | 1 | 50 | 2 | 3
4 | 2 | 90 | 3 | 5
Рейтинг магазина не учитывается, а нужно что бы для начало было по рейтингу
fdr21
Отправлено: 12 Апреля, 2013 - 13:13:29 • Тема: Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене • Форум: Администрирование БД
Ответов: 4 Просмотров: 2059
Всем привет, нужна помошь.
Имеется следующая таблица товаров
Таблица: 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 Просмотров: 1947
Настройка на VPS почты для работы с Яндекс.Почтой для Доменов.
Подскажите пожалуйста
Как настроить виртуальный хостинг, что бы он почту отправлял не в локальный каталог. А по записамь MX?
Проблема в том что я подключил к своему домену почту от Яндек.Домена.
При отправке почты с сайта, на свой домен (допустим домен domain.ru) pochta@domain.ru, письма поподают в локальный каталог а должны отправлятся по записамь MX. на Яндекс Почту для Доменов.
уже бытый день Гуглю, не как что то не соображаю.
Может кто не будь уже настраивал. Скиньте сылку очень прощу как это сделать. Или же если не трудно опишите где что подправить.
OS: CentOS 5
Кажется почта отправляется по sendmail или devecot
Заранее Спасибо!!!
fdr21
Отправлено: 20 Ноября, 2012 - 07:39:20 • Тема: Выборка из таблици товар с минимальной ценой • Форум: SQL и Архитектура БД
Ответов: 2 Просмотров: 114
Имеется таблица: products
Поля:
Уникальный ключь | Идентификатор товара | Цена товара
products_id | repairs_id | products_price |
Нужно выбрать поля, с минимальной ценой.
Делаю так:
Уникальный ключь таблици уникальный,
Идентификатор товара - не уникален, в данной таблице может существовать несколько товаров с разными ценами.
Мне нужно выбрать только те товары только с минимальной ценой в группе.
При запросе привиденном вище, он даёт товары с минимальной ценой, НО Уникальный ключь таблици этого поля не верен.
База данных mysql
Как нужно правильней составить запрос?
fdr21
Отправлено: 27 Июня, 2012 - 09:14:41 • Тема: сокет • Форум: Программирование на PHP
Ответов: 19 Просмотров: 1152
Цитата: AJAX нельзя задействовать по идеологическим соображениям?
Наверное можно, но Я еще до AJAX не дорос)))
fdr21
Отправлено: 27 Июня, 2012 - 09:11:13 • Тема: PHP cache class • Форум: Вопросы новичков
Ответов: 5 Просмотров: 273
при беглом взгяде по моему после
$cache =new cacheClass();
нужно вызвать
$cache->start()
а потом уже $cache->ag_ob_start();
fdr21
Отправлено: 27 Июня, 2012 - 08:59:01 • Тема: сокет • Форум: Программирование на PHP
Ответов: 19 Просмотров: 1152
Цитата: ну а если чат организовать нужно !?
как насчет рефреша в мета теге, с определенном интервалом!
Страниц (6): [1] 2 3 4 5 6 »
Powered by ExBB FM 1.0 RC1. InvisionExBB