Forum Webscript.Ru
Программирование => PHP => Тема начата: 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
Т.е. в распечатке таблицы. В чем здесь ошибка?
-
echo ("
$cap | $row_buy[0] | $row_buy[1] | ");
-
echo ("$cap | $row_buy[0] | $row_buy[1] | ");
Пробовал. Тогда ошибок никаких не выводится, но и ничего не распечатывается :(
-
$row_buy = mysql_fetch_array($result_buy);
$row_buy = mysql_fetch_row($result_buy);
-
$row_buy = mysql_fetch_row($result_buy);
Аналогинчная ситуация, пробовал и mysql_fetch_assoc. Я не знаю вот в чем проблема.
В mysql поле price - double not null
quantity - int(20) not null
-
Да. Вот еще. Я только что заметил, что мне возвращается пустой массив! Т.е. ошибка где-то раньше распечатки :)
-
выключи нотайсы
Notice: Undefined index: price in
типа индекс для этого поля не создан. это информационное сообщение, а не ошибка
(*если я не ошибаюсь*)
-
выключи нотайсы
Notice: Undefined index: price in
типа индекс для этого поля не создан. это информационное сообщение, а не ошибка
(*если я не ошибаюсь*)
Мне от них ни жарко, ни холодно :) У меня почему-то возвращается пустой массив :(
-
echo $query_buy;
Затем этот запрос выполни в phpMyAdmin и посмотри есть ли найденные строки
-
echo $query_buy;
Затем этот запрос выполни в phpMyAdmin и посмотри есть ли найденные строки
Вернуло мне нужную строку
-
Ну так что, никот не знает в чем может быть проблема?
-
Ну, в 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, то перепроверь опять весь остальной код...
-
Выдает 1 :) Я уже этот код по 100 раз просмотрел :(. А может быть все из-за настройки php? Просто пришлось недавно его переустановить и php.ini пришлось заново настраивать.
-
В общем выдает 1-цу - значит нормально все. Перепиши в первоначальном коде только сам запрос и ОБЯЗАНО работать:
$query_buy = "select max(price) as price, sum(quantity) as quantity from quote_buy where cap = \'$cap\' ";
-
Блин, impossible.
Это одна из тех вещей, о которых я говорю "не поверю, пока сам не увижу".
Ну что я еще могу посоветовать... Попробуй полученную $row_buy через foreach распечатать, посмотреть что она содержит.
-
Примечание: а варнинги E_NOTICE все-таки в конфигах (или из программы) отключай - без них и правильнее и лучше.
Это когда сайт уже готов и открыт для всеобщего доступа.
temur
Мне от них ни жарко, ни холодно
то есть warning-и есть?
-
Ну, лично я отнюдь не всегда заморачиваюсь инициализацией переменных заранее, и не считаю, что это плохо...
-
то есть warning-и есть?
Нет. Нету.
И через foreach не распечатывается ничего. В-общем попробую у хостера проверить пока.
-
Ну а хоть массив-то возвращает? Проверь по gettype().
-
Массив возвращает.
Щас только что протестировал у хостера - все работает :) В-общем я ничего не понимаю :))))))
-
блин а что print_r($row_buy) выдает???