Вопрос № 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 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.