|
Проблема с извлечением данных из бд. Приходит неверный ответ
|
|
| Крендель | Дата: Пятница, 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"
Из этого я делаю вывод что возможно плагин не может правильно соединиться с БД. Но в чем конкретно проблема непонятно
生き死に
|
| |
|
|
| _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 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
|
| |
|
|