Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84

mysql_result()

23.11.2010, 14:01. Показов 5312. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Второй день бьюсь над проблемой, помогите зеленому, пожалуйста)
есть код:

PHP
1
2
3
4
5
6
7
$link = mysql_connect("$dbhost","$dbuser","$dbpass");
[16 строка]$fld = mysql_result(mysql_query("SELECT HHH FROM $dbname.$dbtable WHERE token='$token'", $link), 0);
switch ($fld) {
case 1: echo "aaa"; break;
case 2: echo "bbb"; break;
case 3: echo "ccc"; break;
}
запрос сыпется с ошибкой

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 5 in /hero.php on line 16

База, таблица, поле существуют, заполнены в правильном формате (остальные запросы ведь как то выполняются)

описание поля:
`HHH` tinyint(2) NOT NULL default '1'

всем заранее спасибо)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2010, 14:01
Ответы с готовыми решениями:

Mysql_result конвертировать на MySQLi
Конвертирую код с mysql на mysqli. Задача: подсчитать общую сумма заказа в корзине. В mysqli нет функции rezult, есть взаимозаменяющие, но...

Mysql_result больше не поддерживается, как его заменить ?
При переезде на новый сервер, на котором установлен PHP 7.* отвалился скрипт. При изучении литературы оказалось, что запросы типа...

Отличие mysql_fetch_assoc от mysql_result
Скажите что лучше использовать для получения результата запроса функцию mysql_fetch_assoc или mysql_result. Зачем нужен 2-ой параметр...

30
 Аватар для Sonax
350 / 76 / 10
Регистрация: 13.10.2010
Сообщений: 830
23.11.2010, 22:31
Студворк — интернет-сервис помощи студентам
Проблема в стиле. Если используешь mysql_result - далеко не уедешь.используй mysql_fetch_assoc.

Если хочешь, то скинь архив я на своём его поставлю, посмотришь как работает. Так определим в хосте дело или в скрипте. Но думаю в скрипте.
0
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84
24.11.2010, 06:14  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
mysql_select_db($dbname, $link);
echo "<p align=left>Пол: ";
list($sx) = mysql_fetch_row(mysql_query("SELECT Sex FROM $dbname.$dbtable WHERE token='$token'", $link));
switch ($sx) {
case 1: echo "Парень"; break;
case 2: echo "Девушка"; break;
}
echo "<br>Раса: ";
list($fld) = mysql_fetch_row(mysql_query("SELECT Race FROM $dbname.$dbtable WHERE token='$token'", $link));
switch ($fld) {
теперь расклад такой: локальный севр показывает всё отлично, а веб хостинг даёт мне вот это и не показывает ничего:
Миниатюры
mysql_result()  
0
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84
24.11.2010, 08:35  [ТС]
Ребят, убедительно прошу, помогите))
0
Почетный модератор
 Аватар для Humanoid
11561 / 4356 / 453
Регистрация: 12.06.2008
Сообщений: 12,457
24.11.2010, 13:52
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (!mysql_select_db($dbname, $link)) die('Не удалось выбрать базу');
if (!isset($token)) die('Переменная $token не существует');
$res = mysql_query("SELECT Sex,Race FROM $dbtable WHERE token='$token'", $link);
if (!$res) die('Ошибка в запросе: '.mysql_error($link));
if ($a = mysql_fetch_row($res))
{
  list($sx,$fld) = $a;
 
  echo "<p align=left>Пол: ";
  switch ($sx) {
    case 1: echo "Парень"; break;
    case 2: echo "Девушка"; break;
    default: echo "Оно"; break;
  }
 
  echo "<br />Раса: ";
  switch ($fld) {
    case 1: echo "Белый"; break;
    case 2: echo "Чёрный"; break;
    default: echo "Серо-буро-малиновый в крапинку с кружочками"; break;
  }
  echo '</p>';
} else echo "Нет записей, где token=$token";
1
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84
24.11.2010, 14:20  [ТС]
Спасибо всем, кто откликнулся, отдельное спасибо Humanoid и cat_in_web)) их код и дельные замечания помогли мне найти проблему. Выяснилось. что переменная $token не устанавливалась и из-за этого был весь сыр-бор)

Добавлено через 9 минут
PHP
1
$token = htmlspecialchars($_COOKIE['token']);
и всё заработало)
0
Почетный модератор
 Аватар для Humanoid
11561 / 4356 / 453
Регистрация: 12.06.2008
Сообщений: 12,457
24.11.2010, 14:32
Цитата Сообщение от ArviZ Посмотреть сообщение
$token = htmlspecialchars($_COOKIE['token']);
Это нужно было делать, если эта переменная браузеру отправлялась бы... но в твоём случае надо
PHP
1
$token = addslashes($_COOKIE['token']);
Делать, что бы предотвратить SQL-инъекции. А если $token должен быть именно числом, тогда ещё проще:
PHP
1
$token = (int)$_COOKIE['token'];
0
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84
24.11.2010, 14:35  [ТС]
Цитата Сообщение от Humanoid Посмотреть сообщение
Это нужно было делать, если эта переменная браузеру отправлялась бы... но в твоём случае надо
PHP
1
$token = addslashes($_COOKIE['token']);
Делать, что бы предотвратить SQL-инъекции. А если $token должен быть именно числом, тогда ещё проще:
PHP
1
$token = (int)$_COOKIE['token'];
токен имеет вид:
24ab9f0ff63ce2d788052ef70e450283
думаю это явно не число) насчет addslashes не понимаю, можно подробнее?
0
Почетный модератор
 Аватар для Humanoid
11561 / 4356 / 453
Регистрация: 12.06.2008
Сообщений: 12,457
24.11.2010, 14:58
Саму переменную $token ты используешь в SQL запросе. А что если кто-то искусственно в куках укажет кавычку в этом token? Тогда $token будет 24ab9f0'ff63ce2d788052ef70e450283... а сам запрос будет
SQL
1
SELECT Sex,Race FROM tab1 WHERE token='24ab9f0'ff63ce2d788052ef70e450283'
Такой запрос не пройдёт и выдаст ошибку. Но злоумышленник может поставить не только кавычку, а составить свой SQL запрос... тогда твой сайт будет взломан. Что бы этого не произошло, все текстовые переменные, которые могут быть ненадёжны, нужно пропускать через addslashes() или mysql_real_escape_string(), что бы все спец символы были экранированы. Если выполнить $token = addslashes($token), то предыдущий запрос уже станет
SQL
1
SELECT Sex,Race FROM tab1 WHERE token='24ab9f0\'ff63ce2d788052ef70e450283'
Т.к. кавычка экранирована, то она будет считаться просто как часть строки. И тут уже угрозы безопасности не будет.
0
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84
24.11.2010, 15:08  [ТС]
Спасибо, полезная информация, я это обязательно учту в дальнейшем только вопрос, какие строки являются ненадежными? Есть особенности?
0
Почетный модератор
 Аватар для Humanoid
11561 / 4356 / 453
Регистрация: 12.06.2008
Сообщений: 12,457
24.11.2010, 22:22
Цитата Сообщение от ArviZ Посмотреть сообщение
какие строки являются ненадежными?
Которые могут быть изменены пользователем. Например, все данные из $_POST, $_GET, $_COOKIE... из текстовых файлов и т.п. Всё, где могут быть случайные данные или если они могли быть изменены злоумышленником.
Например в коде
PHP
1
2
if (что-то) $s='ляляля'; else $s='гыгыгы';
mysql_query("...$s...");
Тут строка надёжная, т.к. у все её варианты жёстко прописаны тобой в самом коде. Её не обязательно экранировать. Всё остальное - это ненадёжные строки Звучит как паранойя, но это необходимая безопасность.
1
 Аватар для ArviZ
10 / 10 / 1
Регистрация: 13.11.2010
Сообщений: 84
27.11.2010, 23:30  [ТС]
Ребят, всем спасибо, можно закрыть тему))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2010, 23:30

В чем проблемма? Warning: mysql_result() expects parameter 1 ...
Warning: mysql_result() expects parameter 1 to be resource, boolean given in func.php on line 5 function user_exists($email) { ...

Mysql_result
Здравствуйте. Извиняюсь сразу за глупый вопрос, мануалы читаю, но все равно имеется такой вопрос. Мне необходимо выбрать запись с одного...

mysql_result
ПРивет. Столкнулся с таким моментом, вытаскиваю кол-во записей в таблице, но в зависисмости от второй, и вот эта ф-я // // число...

Замена mysql_result
Комрады! Может, я туплю, но не могу найти функцию mysqli_ на замену mysql_result. Вообще есть такая??? Спасибо за ответ. ...

Mysql_result в pdo
Подскажите, как этот запрос выглядит в PDO:) for($m=0;$m&lt;$list;$m++){ $user=mysql_result(mysql_query(&quot;SELECT `user` FROM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru