Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 5-й класс
Рейтинг: 835
∙ повысить рейтинг »
Волков Алексей
Статус: 5-й класс
Рейтинг: 182
∙ повысить рейтинг »
HookEst
Статус: Специалист
Рейтинг: 170
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / PHP

Номер выпуска:1171
Дата выхода:04.11.2009, 20:00
Администратор рассылки:Товарищ Бородин, Академик
Подписчиков / экспертов:629 / 183
Вопросов / ответов:1 / 1
IRC-канал по теме:#php

Вопрос № 173846: Здраствуйте! Я начал переделывать кусок кода под себя, но не всё у меня получается. Прошу помощи! Вот исходный код:

Код:
   
Вопрос № 173846:

Здраствуйте!
Я начал переделывать кусок кода под себя, но не всё у меня получается. Прошу помощи!
Вот исходный код:

Код:

// Проверяем в запросе есть ли переменная q
if (isset($_POST['q'])) {
// не забываем о безопасности
$q = $db->real_escape_string($_POST['q']);
// больше ли нуля?
if (strlen($q) > 0) {
// Для примера используется запрос вида LIKE '$q%'
if ($query = $db->query( "SELECT name FROM cities WHERE name LIKE '$q%' LIMIT 10")) {
while ($result = $query->fetch_object()) {
// для форматирования результата используется список <li>
// по onClick fill вставляет в поле результат и скрывает окошко выбора
echo ("<li onclick=\"fill('$result->name');\">$result->name</li>");
}
$query->close();
} else {
echo 'ERROR: ' . $db->error;
}
}
}
$db->close();


Вот мой код переделанный но не до конца

Код:

<?php
include_once("include/connectdb.php");

if (isset($_POST['q'])) {
// не забываем о безопасности
$q = mysql_real_escape_string($_POST['q']);
// больше ли нуля?
if (strlen($q) > 0) {
// Для примера используется запрос вида
if ($query = mysql_query( "SELECT `players` FROM `$USE R_TABLE_PLAYERS`")) {
while ($result = $query->fetch_object()) {
// для форматирования результата используется список <li>
// по onClick fill вставляет в поле результат и скрывает окошко выбора
echo ("<li onclick=\"fill('$result->players');\">$result->players</li>");
}
$query->close();
}
else {
echo 'ERROR: ' . $dbcnx->error;
}
}
}
?>


Мне нужно чтобы в echo формировался список из таблицы БД.
видимо где while у меня ошибка и ничего не выполняется, выскакивает второе echo ERROR: но без . $dbcnx->error;

Подскажите плиз, как тут сделать правильно!!!

Отправлен: 30.10.2009, 19:46
Вопрос задал: TOK11, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Товарищ Бородин, Академик :
Здравствуйте, TOK11.
Действительно, ошибка в цикле. Было бы правильно с Вашей стороны привести ее текст, но я могу сказать примерный ее смысл и так: ошибка в том, что Вы с помощью функции mysql_query получаете значение типа resource, а работать с ним пытаетесь, как с объектом. Ни один интерпретатор(и PHP здесь не исключение) не потерпит такого издевательства. Тут надо использовать функцию mysql_fetch_object, которой передавать переменную $query. Функция вернет строку таблицы в виде объекта и передвинет указатель на следующую строку для извлечения. То есть, должно быть
while ($result = mysql_fetch_object($query)) {
...
}
Это раз. Второе: а что это Вы, дорогой товарищ, имя таблицы базы данных сохраняете в переменной? Я про $USER_TABLE_PLAYERS. Дозвольте заметить, что не очень сие гуд. Хотя дело Ваше, особенно, если у Вас register_globals не равно 1(то есть, не включено).

С уважением, Товарищ Бородин

Ответ отправил: Товарищ Бородин, Академик
Ответ отправлен: 30.10.2009, 20:02

Оценка ответа: 5
Комментарий к оценке:
Впринципе помогли, спасибо!

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256029 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.10 от 26.10.2009

    В избранное