[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при выводе значений из БД
l@pteff
здравствуйте, может быть кто-то разберётся: из таблицы goods нужно вывести название и цену товара (столбцы type_good, price_good). Делаю таким запросом:

$good = $_POST['good'];

<!--
Здесь подключаемся к базе-->

$query = mysql_query("select type_good, price_good from goods where type_good LIKE '%$good%'")or die(mysql_error());

if ($query)
$a=mysql_result($query, 0, 'type_good');
$b=mysql_result($query, 0, 'price_good');

echo '<table><tr><td>'.$a.'</td><td>'.$b.'</td></tr></table>';


В итоге:
Цитата

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3


В первых ячейках столбцов type_good и price_good имеются значения, запрос не должен быть пустым. Почему тогда выводится этот варнинг? :blink:



Спустя 5 минут, 31 секунда (2.05.2011 - 18:54) Renden написал(а):
l@pteff
А чем тебе массив не угодил?

$query = mysql_query("select type_good, price_good from goods where type_good LIKE '%$good%'")or die(mysql_error());
$row = mysql_fetch_array($query);
echo '<table><tr><td>'.$row['type_good'].'</td><td>'.$row['price_good'].'</td></tr></table>';

Спустя 42 секунды (2.05.2011 - 18:55) Игорь_Vasinsky написал(а):
твой запрс не верул значения полей, т.к. не найдено совпадений, т.е. 0 в ответе.

ПОра ужн научиться делать вывод из БД.

т.е. сначала проверить что вернула БД - потомы вывод.
т.е. если mysql_num_rows($query) > 0

Спустя 1 минута, 6 секунд (2.05.2011 - 18:56) neadekvat написал(а):
Цитата (Renden @ 2.05.2011 - 19:54)
mysql_fetch_array

Зачем? Почему не *_assoc?

Спустя 2 минуты, 10 секунд (2.05.2011 - 18:58) Renden написал(а):
neadekvat
Забыл как assoc пишется, похмелье smile.gif

Спустя 1 минута, 56 секунд (2.05.2011 - 19:00) neadekvat написал(а):
Цитата (Renden @ 2.05.2011 - 19:58)
Забыл как assoc пишется, похмелье

Мир, труд, май -
Нам ведь только повод дай.

Спустя 1 минута, 11 секунд (2.05.2011 - 19:01) ИНСИ написал(а):
l@pteff а зачем ты используешь оператор LIKE? И что именно у тебя содержит $_POST['good']?

Спустя 13 минут, 39 секунд (2.05.2011 - 19:15) l@pteff написал(а):
По поводу $_POST['good']: на странице есть инпут с названием товара, которое через запрос передаётся в базу и через like ищется соответствие.

Renden, использую mysql_fetch_assoc-ничего не выводит

Игорь_Vasinsky, чуть изменил код:

$a=mysql_result($query, 0, 'type_good');
$b=mysql_result($query, 0, 'price_good');

if (mysql_num_rows($query)==0)
{echo 'Совпадений не найдено';
exit;}

echo '<table><tr><td>'.$a.'</td><td>'.$b.'</td></tr></table>';

Пишет что совпадений не найдено и те же варнинги. Может быть с кодировками в phpMyAdmin бок?

Спустя 3 минуты, 8 секунд (2.05.2011 - 19:18) l@pteff написал(а):
Там у меня всё поставлено на utf8_general_ci
Сопоставление соединения с MySQL: utf8_general_ci
Сравнение: utf8_general_ci

Спустя 15 минут, 31 секунда (2.05.2011 - 19:33) Renden написал(а):
l@pteff
Ничего не выводит потому что у тя запрос пустой..
А сама страница html с формой в какой кодировке? Для теста проверь на en пашет?

Спустя 11 минут, 43 секунды (2.05.2011 - 19:45) l@pteff написал(а):
На English пашет. Кодировка html-страницы utf8

Спустя 1 минута, 53 секунды (2.05.2011 - 19:47) Игорь_Vasinsky написал(а):
попробуй iconv() - конвертируй поисковый запрос перед отправкой в БД

Спустя 3 минуты, 20 секунд (2.05.2011 - 19:50) Renden написал(а):
l@pteff
Ну значит не все проставлено:)
нужно:
кодировка базы uft8
кодировка таблиц uft8
сам скрипт тоже желательно utf8
и перед твоим запросом сделать запроc mysql_query('SET NAMES utf8');

Если всеравно не пашет, iconv тебе в помощь)

Спустя 13 минут, 24 секунды (2.05.2011 - 20:04) l@pteff написал(а):
точно, вот так работает:


$good = iconv("UTF-8","utf8_general_ci", $_POST['good']);

большое спасибо всем за помощь!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.