Forum Webscript.Ru

Программирование => PHP => Тема начата: temur от 16 Августа 2002, 21:32:16

Название: Что не так в скрипте?
Отправлено: temur от 16 Августа 2002, 21:32:16
Вот кусок скрипта:

$query_buy = "select max(price), sum(quantity) from quote_buy where cap = \'$cap\' ";
$result_buy = mysql_query($query_buy, $link);
if (!$result_buy) die (mysql_error());
$row_buy = mysql_fetch_array($result_buy);
echo ("$cap $row_buy[price] $row_buy[quantity]");  

В итоге выдаются ошибки:
Notice: Undefined index: price in c:\\www\\www\\stock\\cap_quote.inc on line 10

Notice: Undefined index: quantity in c:\\www\\www\\stock\\cap_quote.inc on line 10

Т.е. в распечатке таблицы. В чем здесь ошибка?
Название: Что не так в скрипте?
Отправлено: Макс от 16 Августа 2002, 21:40:49
echo ("$cap $row_buy[0] $row_buy[1]");
Название: Что не так в скрипте?
Отправлено: temur от 16 Августа 2002, 21:50:35
Цитировать
echo ("$cap $row_buy[0] $row_buy[1]");

Пробовал. Тогда ошибок никаких не выводится, но и ничего не распечатывается :(
Название: Что не так в скрипте?
Отправлено: Макс от 16 Августа 2002, 22:15:04
Цитировать

$row_buy = mysql_fetch_array($result_buy);

$row_buy = mysql_fetch_row($result_buy);
Название: Что не так в скрипте?
Отправлено: temur от 16 Августа 2002, 22:23:28
Цитировать
$row_buy = mysql_fetch_row($result_buy);

Аналогинчная ситуация, пробовал и mysql_fetch_assoc. Я не знаю вот в чем проблема.
В mysql поле price - double not null
                      quantity - int(20) not null
Название: Что не так в скрипте?
Отправлено: temur от 16 Августа 2002, 22:28:21
Да. Вот еще. Я только что заметил, что мне возвращается пустой массив! Т.е. ошибка где-то раньше распечатки :)
Название: Что не так в скрипте?
Отправлено: AliMamed от 16 Августа 2002, 22:28:45
выключи нотайсы
Notice: Undefined index: price in

типа индекс для этого поля не создан. это информационное сообщение, а не ошибка

(*если я не ошибаюсь*)
Название: Что не так в скрипте?
Отправлено: temur от 16 Августа 2002, 22:38:01
Цитировать
выключи нотайсы
Notice: Undefined index: price in

типа индекс для этого поля не создан. это информационное сообщение, а не ошибка

(*если я не ошибаюсь*)

Мне от них ни жарко, ни холодно :) У меня почему-то возвращается пустой массив :(
Название: Что не так в скрипте?
Отправлено: Макс от 16 Августа 2002, 22:40:32
echo $query_buy;

Затем этот запрос выполни в phpMyAdmin и посмотри есть ли найденные строки
Название: Что не так в скрипте?
Отправлено: temur от 16 Августа 2002, 22:56:01
Цитировать
echo $query_buy;

Затем этот запрос выполни в phpMyAdmin и посмотри есть ли найденные строки

Вернуло мне нужную строку
Название: Что не так в скрипте?
Отправлено: temur от 17 Августа 2002, 18:25:19
Ну так что, никот не знает в чем может быть проблема?
Название: Что не так в скрипте?
Отправлено: Unregistered от 17 Августа 2002, 22:26:12
Ну, в 1-м самом случае все логично: ты же полям новые имена не дал в виде:
select max(price) as price, ...
вот и брал неусуществующий индекс в масиве.

Примечание: а варнинги E_NOTICE все-таки в конфигах (или из программы) отключай - без них и правильнее и лучше.

Что же касается неполучения результата с помощью
$row_buy = mysql_fetch_row($result_buy);
при взятии результата по индексу вида $row_buy[0] - то тут прямо какая-то фантастика... Если ты не путаешь, и результат действительно есть. Проверь на всякий случай:
echo mysql_num_rows($result_buy);
Если выдаст 1, то перепроверь опять весь остальной код...
Название: Что не так в скрипте?
Отправлено: temur от 17 Августа 2002, 22:55:44
Выдает 1 :) Я уже этот код по 100 раз просмотрел :(. А может быть все из-за настройки php? Просто пришлось недавно его переустановить и php.ini пришлось заново настраивать.
Название: Что не так в скрипте?
Отправлено: Доктор от 19 Августа 2002, 01:25:23
В общем выдает 1-цу - значит нормально все. Перепиши в первоначальном коде только сам запрос и ОБЯЗАНО работать:

$query_buy = "select max(price) as price, sum(quantity) as quantity from quote_buy where cap = \'$cap\' ";
Название: Что не так в скрипте?
Отправлено: Unregistered от 19 Августа 2002, 01:26:19
Блин, impossible.
Это одна из тех вещей, о которых я говорю "не поверю, пока сам не увижу".

Ну что я еще могу посоветовать... Попробуй полученную $row_buy через foreach распечатать, посмотреть что она содержит.
Название: Что не так в скрипте?
Отправлено: Макс от 19 Августа 2002, 01:42:20
Цитировать
Примечание: а варнинги E_NOTICE все-таки в конфигах (или из программы) отключай - без них и правильнее и лучше.
Это когда сайт уже готов и открыт для всеобщего доступа.


temur
Цитировать
Мне от них ни жарко, ни холодно
то есть warning-и есть?
Название: Что не так в скрипте?
Отправлено: Unregistered от 21 Августа 2002, 03:31:43
Ну, лично я отнюдь не всегда заморачиваюсь инициализацией переменных заранее, и не считаю, что это плохо...
Название: Что не так в скрипте?
Отправлено: temur от 21 Августа 2002, 18:21:44
Цитировать
то есть warning-и есть?

Нет. Нету.

И через foreach не распечатывается ничего. В-общем попробую у хостера проверить пока.
Название: Что не так в скрипте?
Отправлено: Unregistered от 23 Августа 2002, 17:20:55
Ну а хоть массив-то возвращает? Проверь по gettype().
Название: Что не так в скрипте?
Отправлено: temur от 23 Августа 2002, 18:06:11
Массив возвращает.

Щас только что протестировал у хостера - все работает :) В-общем я ничего не понимаю :))))))
Название: Что не так в скрипте?
Отправлено: KBA-KBA от 24 Августа 2002, 02:24:33
блин а что print_r($row_buy) выдает???