08:40
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: AXE, Weddew  
Проблема с извлечением данных из бд. Приходит неверный ответ
КрендельДата: Пятница, 05.08.2011, 11:50 | Сообщение # 1
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Делаю запрос к БД
Code

  mysql_query("SELECT `Key` FROM `table` WHERE `name` = 'NoName'");
  mysql_store_result();
  printf("%s - %d", mysql_fetch_int());
  mysql_free_result();

в ответ приходит "я - 77"
в столбике "Key" стоит значение "1451NQ".
Когда посылаю этот же запрос в самом "phpmyAdmin" результат приходит верный т.е. "1451NQ", если отправляю с сервера, то приходит "я - 77".
Когда я первый раз отослал такой же запрос к БД, ответ пришел правильный, а вот сейчас что-то где-то нетак.
Кто знает в чем может быть проблема? Или хотя бы подскажите в какую сторону копать.
Спасибо за внимание и ответы :)



生き死に
Дикий_БиллДата: Пятница, 05.08.2011, 11:55 | Сообщение # 2
Освоившийся
Группа: Пользователи
Сообщений: 76
Награды: 1
Город: ...
Репутация: -46
Замечания: 100%
Статус:
Quote (Крендель)
printf("%s - %d", mysql_fetch_int());

Почему тега 2(%s и %d), а выводишь только одно значение?

КрендельДата: Пятница, 05.08.2011, 12:12 | Сообщение # 3
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (Дикий_Билл)
Почему тега 2(%s и %d), а выводишь только одно значение?

не ты не понял)
%s = я
%d = 77

это я уже на всякий случал его поставил )

Добавлено (05.08.2011, 12:06)
---------------------------------------------
Выяснился еще один очень интересный факт:
в запросе вместо "Key" я вписал "Keyy"
Code
SELECT `Keyy` FROM `table` WHERE `name` = 'NoName'

такого столбика у меня несуществует.
Но прикол в том что пришел тот же самый ответ "я - 77"

Вот это уже интересно. Сервер к БД подключается нормально. С сервера могу посылать запросы на добавление или изменение данных в БД. С этим все нормально, но вот с получением данных из таблицы проблема...

Добавлено (05.08.2011, 12:12)
---------------------------------------------
блин сори затупил с тегами ))
в общем если поставить тег %s приходит ответ "я", а если поставить тег %d то приходит ответ "-1"


生き死に

Сообщение отредактировал Крендель - Пятница, 05.08.2011, 12:10
_Dark_Дата: Пятница, 05.08.2011, 12:16 | Сообщение # 4
Постоялец
Группа: I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус:
Quote (Крендель)
в общем если поставить тег %s приходит ответ "я", а если поставить тег %d то приходит ответ "-1"

Ну правильно - %s - строка, %d - число...





Если баги возникают из ниоткуда - ты на правильном пути. (с)
Дикий_БиллДата: Пятница, 05.08.2011, 12:16 | Сообщение # 5
Освоившийся
Группа: Пользователи
Сообщений: 76
Награды: 1
Город: ...
Репутация: -46
Замечания: 100%
Статус:
Quote (Крендель)
блин сори затупил с тегами ))
в общем если поставить тег %s приходит ответ "я", а если поставить тег %d то приходит ответ "-1"

Может потому что %s - выводить значение типа string(строка),а %d - double...

КрендельДата: Пятница, 05.08.2011, 12:19 | Сообщение # 6
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (Дикий_Билл)
Может потому что %s - выводить значение типа string(строка),а %d - double...

не ну когда я первый раз отправил такой запрос я писал %s и мне пришел правильный ответ из БД, а сейчас эта долбаная "я" глаза мозолит



生き死に
_Dark_Дата: Пятница, 05.08.2011, 12:20 | Сообщение # 7
Постоялец
Группа: I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус:
Короче, дай нормальный код без твоих этих тегов. Дай код такой какой он должен быть. А то ничего не понятно.




Если баги возникают из ниоткуда - ты на правильном пути. (с)
КрендельДата: Пятница, 05.08.2011, 12:27 | Сообщение # 8
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (_Dark_)
Короче, дай нормальный код без твоих этих тегов. Дай код такой какой он должен быть. А то ничего не понятно.

Code

   mysql_query("SELECT `Key` FROM `orp_players` WHERE `name` = 'NoName'");
   mysql_store_result();
   printf("%s", mysql_fetch_int());
   mysql_free_result();

В столбике "Key" содержится значение "1451NQ".
Для получения данных из БД я использую приведенный выше код. При использовании тега %s ответ из БД приходит в виде буквы "я" и больше ничего.
При использовании тега %d (он тут не годится т.к. в стоолбике имеются как цифры так и символы) приходит ответ "-1"

Далее...Например в моей таблице не существует столбика с названием "Dom", но если я в запросе вместо "Key" впишу "Dom"
Code
SELECT `Dom` FROM `orp_players` WHERE `name` = 'NoName'

Придет тот же ответ для тега %s - "я" и для тега %d - "-1"

Из этого я делаю вывод что возможно плагин не может правильно соединиться с БД.
Но в чем конкретно проблема непонятно wall



生き死に
_Dark_Дата: Пятница, 05.08.2011, 12:43 | Сообщение # 9
Постоялец
Группа: I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус:
Попробуй изменить значение Key на 012345 (только цифры) и заново извлеки данные, используя %d. Как сделаешь - отпишись.




Если баги возникают из ниоткуда - ты на правильном пути. (с)
КрендельДата: Пятница, 05.08.2011, 12:53 | Сообщение # 10
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (_Dark_)
Попробуй изменить значение Key на 012345 (только цифры) и заново извлеки данные, используя %d. Как сделаешь - отпишись.

хм...ответ пришел верный т.е. "012345"...с типами данных похоже что-то нетак..не совпадают что ли..
в БД у столбика "Key" тип данных varchar.



生き死に
Jumpman23Дата: Пятница, 05.08.2011, 13:06 | Сообщение # 11
Группа: I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус:
попробуй присваивать результат к переменной строкового типа и выводить на экран


Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме.
Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы).
Великс ты красава.
Дикий_БиллДата: Пятница, 05.08.2011, 13:09 | Сообщение # 12
Освоившийся
Группа: Пользователи
Сообщений: 76
Награды: 1
Город: ...
Репутация: -46
Замечания: 100%
Статус:
Quote (Крендель)
в БД у столбика "Key" тип данных varchar.

string должен быть

КрендельДата: Пятница, 05.08.2011, 13:19 | Сообщение # 13
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
Quote (Jericho)
попробуй присваивать результат к переменной строкового типа и выводить на экран

как понять строковый тип??
насколько я знаю в павно имеется только "new"
как же тогда указать строковый тип?



生き死に
_Dark_Дата: Пятница, 05.08.2011, 13:27 | Сообщение # 14
Постоялец
Группа: I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус:
Крендель,
Ты в курсе, что функция mysql_fetch_int() используется для вывода целых чисел? Она не выведет строку.
P.S. Переменная строкового типа -
Code
new string[255];

Присвоить -
Code
string = "Text";
или
Code
format(string, sizeof(string), "Текст");





Если баги возникают из ниоткуда - ты на правильном пути. (с)


Сообщение отредактировал _Dark_ - Пятница, 05.08.2011, 13:28
AirKiteДата: Пятница, 05.08.2011, 13:47 | Сообщение # 15
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Проблема в не внимательном прочтении документации.
http://wiki.sa-mp.com/wiki/MySQL
Quote
mysql_fetch_int
Use this function to retrieve single integer value from the result set.
Хотя это в принципе понятно ещё из названия функции

Используй mysql_fetch_row_format или mysql_fetch_field_row



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua