[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка в коде при выводе бд MySQL
TekseT
Здравствуйте,
Подскажите как исправить ситуацию.

Есть готовая система е107, так же созданы новые поля в базе wmr и wmr1, где

wmr - номер кошелька
wmr1 - заработанная сумма

Система при входе определяет пользователя у каждого свой порядковый номер (ID), требуется вывести заработок пользователя в нужное место.

Нашел код такого типа:

$result = mysql_query("SELECT * FROM e1071_user_extended");


printf("Кошелек: %s<br>\n", mysql_result($result,0,"user_wmr1"));


Если я как то не понятно объяснил суть вопроса, можете написать в icq 485407271.

За ранее благодарен!



Спустя 10 минут, 3 секунды (25.05.2011 - 09:59) Игорь_Vasinsky написал(а):
Цитата
можете написать в icq 485407271.

а форум? это что забор?

$id = $_GET['id'];
$result = mysql_query("SELECT * FROM `e1071_user_extended` WHERE `id` = ".(int)$id);
while($row = mysql_fetch_array($result))
{
echo "кошелёк: ".$row['wmr']." - сумма: ".$row['wmr1']."<br />";
}

но сначала бы поверить есть ли юзер с таким id (уж пдумай как это сделать, пожалуста)

Спустя 1 час, 11 минут, 15 секунд (25.05.2011 - 11:10) ИНСИ написал(а):
Игорь_Vasinsky а зачем создавать отдельный $id? Сразу в запросе используй GET

Свернутый текст
mysql_query("SELECT * FROM `e1071_user_extended` WHERE `id` = '".(int)$_GET['id']."'");


Спустя 8 минут, 29 секунд (25.05.2011 - 11:19) Игорь_Vasinsky написал(а):
velbox
Вдруг в GET его не окажется....
и ну мало ли, вдруг где ещё пргодиться, например при выводе таблицы.

Спустя 54 минуты, 13 секунд (25.05.2011 - 12:13) Michael написал(а):
Игорь_Vasinsky, velbox, а зачем вы числа кавычками обрамляете как строки? Изучайте

Спустя 1 минута, 58 секунд (25.05.2011 - 12:15) Игорь_Vasinsky написал(а):
Michael
можешь считать это стилем - обрамление ковычками переменных php в SQL.
Привычка, но не вредная wink.gif

Спустя 1 минута, 53 секунды (25.05.2011 - 12:17) Michael написал(а):
Цитата (Игорь_Vasinsky @ 25.05.2011 - 11:15)
Michael
можешь считать это стилем - обрамление ковычками переменных php в SQL.
Привычка, но не вредная wink.gif

это признак непонимания основ wink.gif , а именно типов данных, а не стиль. Хотя может и стиль ... ламера. laugh.gif

Спустя 41 секунда (25.05.2011 - 12:18) ИНСИ написал(а):
Michael я не писал код, просто скопировал и заменил ID

Спустя 3 минуты, 47 секунд (25.05.2011 - 12:21) Игорь_Vasinsky написал(а):
Michael
ламера-нуба, любящего спорить. ;)
хотя:
$int = 323;

а в sql - привык, хотя - да они там не нужны.
А по пооду основ - куда нам, простым смертным.... просто пичатаем напоры буковок и циферок... - а они странным образом работают... :blink: эт загада... мне не по зубам..

Спустя 4 минуты, 12 секунд (25.05.2011 - 12:26) Michael написал(а):
Цитата (Игорь_Vasinsky @ 25.05.2011 - 11:21)
Michael
ламера-нуба, любящего спорить. wink.gif

Я так и понял. Известная категория.

velbox, ну вот будет тебе наука не заниматься копипастом. Это антипаттерн laugh.gif .

Спустя 1 минута, 49 секунд (25.05.2011 - 12:27) Игорь_Vasinsky написал(а):
Michael
Не.. в отличии от троллей - наш брат тока кусается - когда его кусают. wink.gif кстати - убрал ковычки., надоб запомнить..

Спустя 1 час, 41 минута, 45 секунд (25.05.2011 - 14:09) TekseT написал(а):
Ошибок в коде не выдает но вместо результата на экране пустое место.

Я сейчас конкретней объясню... Есть база данных называется "а", в ней таблицы:

e1071_user - таблица с пользователями
e1071_user_extended - таблица в которой заработок

Дак вот ID у пользователей что в той, что в другой таблице равные. Нужно чтобы по ID показывался заработок конкретного пользователя.

Спустя 7 минут, 31 секунда (25.05.2011 - 14:17) Игорь_Vasinsky написал(а):
в начале кода:
error_reporting(E_ALL);
во первых - нужно подсчитать кол-во возращаемых строк после запроса ;)
во вторых:
$result = mysql_query("SELECT * FROM `e1071_user_extended` WHERE `id` = ".(int)$id) or die(mysql_error());

Спустя 7 минут, 32 секунды (25.05.2011 - 14:24) Guest написал(а):
Вот теперь он показывает ошибку такого типа:

Unknown column 'id' in 'where clause'

Возможно дело в названиях полей?
в таблице пользователей столбец называется user_id
в таблице с данными называется:

user_extended_id
user_extended_wmr
user_extended_wmr1

Спустя 12 минут, 4 секунды (25.05.2011 - 14:36) Игорь_Vasinsky написал(а):
Цитата
Unknown column 'id' in 'where clause'


неизвестная ячейка id в таблице clause;
Цитата

Возможно дело в названиях полей?


конечно - имена плей то свои подставляй.

Спустя 5 минут, 11 секунд (25.05.2011 - 14:42) TekseT написал(а):
Вот то что у меня вышло:

$id = $_GET['user_id'];
$result = mysql_query("SELECT * FROM `e1071_user_extended` WHERE `user_extended_id` = ".(int)$id) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
echo ("кошелёк: ".$row['user_extended_wmr']." - сумма: ".$row['user_extended_wmr1']."<br />");
}

Ошибок снова не выдает, но всё же на том месте где должен быть результат пустое место... Он даже не выводит слова "кошелек" и "сумма"

Спустя 2 дня, 19 минут, 56 секунд (27.05.2011 - 15:01) TekseT написал(а):
Никто решения проблемы не нашел?

Спустя 32 минуты, 50 секунд (27.05.2011 - 15:34) pavlik написал(а):

$id = $_GET[id];
$errors = array();
if(ereg('^[1-9][0-9]*$', $id))
$errors['id'] = 'неправильный формат идентификатора';

if(!isset($errors[id]))
{
$result = mysql_query("SELECT * FROM `e1071_user_extended` WHERE `user_extended_id` = ".id) or die(mysql_error());

if(!mysql_num_rows($result)
echo ('запрос вернул пустой результат!');
else
{
while($row = mysql_fetch_assoc($result))
echo ("кошелёк: ".$row['user_extended_wmr']." - сумма: ".$row['user_extended_wmr1']."<br />");
}
}

else
{
echo $errors['id'];
}

Спустя 1 минута, 12 секунд (27.05.2011 - 15:35) pavlik написал(а):
ахда, у тебя ошибка в строке

while($row = mysql_fetch_array($result))


попробуй

while($row = mysql_fetch_assoc($result))


вернее не ошибка.
mysql_fetch_array возвращает массив с числовыми ключами 0,1,2 и т д, а ты массиву обращаешься как к ассиативному

чтобы вернуть ассоциативный массив, необходимо использовать mysql_fetch_assoc

Спустя 9 минут, 39 секунд (27.05.2011 - 15:45) pavlik написал(а):
ахда, у тебя ошибка в строке

while($row = mysql_fetch_array($result))


попробуй

while($row = mysql_fetch_assoc($result))


вернее не ошибка.
mysql_fetch_array возвращает массив с числовыми ключами 0,1,2 и т д, а ты массиву обращаешься как к ассиативному

чтобы вернуть ассоциативный массив, необходимо использовать mysql_fetch_assoc

Спустя 41 минута, 59 секунд (27.05.2011 - 16:27) Guest написал(а):
Цитата
$id = $_GET[id];
$errors = array();
if(ereg('^[1-9][0-9]*$', $id))
$errors['id'] = 'неправильный формат идентификатора';

if(!isset($errors[id]))
{
$result = mysql_query("SELECT * FROM `e1071_user_extended` WHERE `user_extended_id` = ".id) or die(mysql_error());

if(!mysql_num_rows($result)
echo ('запрос вернул пустой результат!');
else
{
while($row = mysql_fetch_assoc($result))
echo ("кошелёк: ".$row['user_extended_wmr']." - сумма: ".$row['user_extended_wmr1']."<br />");
}
}
else
{
echo $errors['id'];
}



Данный код выдает такую ошибку:
Parse error: syntax error, unexpected T_ECHO

Ну а вот это:

while($row = mysql_fetch_assoc($result))

Увы не помогло... Сайт работает ошибок не выдает но и на месте результата пусто... Я хочу повторить что это система е107 и возможно чем то поможет вот что:
Система всё время помнит ID пользователя как .USERID

Спустя 8 минут, 51 секунда (27.05.2011 - 16:36) TekseT написал(а):
Вот начало скрипта:

if(USER == TRUE || ADMIN == TRUE){
list($uid, $upw) = ($_COOKIE[$pref['cookie_name']] ? explode(".", $_COOKIE[$pref['cookie_name']]) : explode(".", $_SESSION[$pref['cookie_name']]));
// on defini le titre du bloc

$textcaption = $pref['eXLpref_title'];
if ($pref['eXLpref_pseudo']==1){
$textcaption = $pref['eXLpref_title']." ".USERID;
}

Тут система выводит ID пользователя, это работает а вот после этого я хочу вывести заработок... Может ещё эта информация чем поможет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.