Перейти к публикации

Рекомендованные сообщения

Добрый день.

Такой вопрос: в БД сайта есть раздел users, в нем у меня есть поле points. У каждого юзера свое значение в points хранится. Я хочу это значение отобразить в у каждого в профиле. Как должен выглядеть такой запрос? Заранее благодарен.

Ссылка на сообщение
Поделиться на других сайтах

Добрый день.

Такой вопрос: в БД сайта есть раздел users, в нем у меня есть поле points. У каждого юзера свое значение в points хранится. Я хочу это значение отобразить в у каждого в профиле. Как должен выглядеть такой запрос? Заранее благодарен.

Ты пользуешься модулем система баллов? =))

Ссылка на сообщение
Поделиться на других сайтах

Ты пользуешься модулем система баллов? =))

Нет) У меня спортивный сайт и я пользуюсь модулем тотализатора)

kpravda,

Я не помню, какая переменная отвечает за ID пользователя... $user_id?

После того как вставляю в шаблон строку

<? SELECT points FROM `dle_users` WHERE id='$user_id' ?>

Вылазит ошибка на страницах профиля:

Parse error: syntax error, unexpected T_STRING in /var/www/u39719/data/www/redevils.ru/index.php(262) : eval()'d code on line 475
Изменено пользователем kingkill
Ссылка на сообщение
Поделиться на других сайтах

Ну конечно, это SQL запрос, его в php надо подключать ведь :) У меня щас нет времени, если до меня никто не отпишет - напишу. а вообще идите в гугл, пишите в поиск "php mysql Запрос"

Ссылка на сообщение
Поделиться на других сайтах

kpravda,

В гугле то я читал, просто там все обобщенно, конкретно с dle ничего. Просто сложновато с нуля так взять и разобраться)

Ссылка на сообщение
Поделиться на других сайтах

$query = "SELECT....";

$points = mysql_query($query);

потом $points обрабатываешь и выводишь куда нужно

Ссылка на сообщение
Поделиться на других сайтах

В user_info.php добавил в конец:

$totalpoints = $db->super_query("SELECT points FROM ".USERPREFIX."_users WHERE user_id='{$user_id}'");

$tpl->set('{totalpoints}', $totalpoints);
В шаблон добавил {totalpoints}, но на её месте пустота) kpravda, Потом сделал так как ты сказал, то же самое - пустота. Делал так: После
	include ENGINE_DIR.'/data/config.php';

	require_once ENGINE_DIR.'/classes/mysql.php';

	require_once ENGINE_DIR.'/data/dbconfig.php';

	require_once ENGINE_DIR.'/modules/functions.php';

	require_once ENGINE_DIR.'/modules/sitelogin.php';

	@header("Content-type: text/css; charset={$config['charset']}");

	$theme = "/templates/{$config['skin']}";

	$user_id = intval($_REQUEST['user_id']);
Вставил
$querytotal = "SELECT points FROM ".USERPREFIX."_users WHERE user_id='{$user_id}'";

$totalpoints = mysql_query($querytotal);
В конце кода
	$tpl->set('{totalpoints}', $totalpoints);
В шаблоне
{totalpoints}

Ссылка на сообщение
Поделиться на других сайтах

а почему {$user_id} ? Просто $user_id попробуй в запросе.

Ссылка на сообщение
Поделиться на других сайтах

а почему {$user_id} ? Просто $user_id попробуй в запросе.

Потому что я в коде посмотрел и нашел запрос, где было:

$row = $db->super_query("SELECT birthday FROM ".USERPREFIX."_users WHERE user_id='{$user_id}'");

Но без фигурных скобок тоже пустота(

Ссылка на сообщение
Поделиться на других сайтах

kingkill, если выводим как HTML, то нужно скобки ставить, иначе - если в двойных кавычках, то ничего, если в одинарных кавычках, то нужно обрамлять с двух сторон точками. Примеры:

$sql = "Это айди: $id";

$sql = 'Это айди: '.$id;

echo <<<HTML

"Это айди: {$id}";

HTML;

Шаблон добавлять не нужно:

$tpl->set('{totalpoints}', $totalpoints);

Достаточно код "echo" написать в самом профиле и всё - всего 3 строчки, вроде пхп там только поддерживается.

$sql = "SELECT points FROM ".USERPREFIX."_users WHERE user_id='{$user_id}'";

$res = $db->super_query($sql);

$totalpoints = $res['points'];

echo $totalpoints;
Точно не уверен, кажись здесь нужен "супер-запрос", тогда можно сразу его вытащить, иначе нужно через найденную строку вытаскивать:
while ($r = $db->get_row($res)) echo $res['points'];

Давненько в запросаз не копался, но вроде бы так в ДЛЕ.

Ссылка на сообщение
Поделиться на других сайтах

zgr,

В user_info.php вставил

$sql = "SELECT points FROM ".USERPREFIX."_users WHERE user_id='{$user_id}'";

$res = $db->super_query($sql);

$totalpoints = $res['points'];
В .tpl
echo $totalpoints;

Насчет суперзапроса не оч понял, куда вставлять его?

Ссылка на сообщение
Поделиться на других сайтах

в tpl используется HTML, а не PHP :)

сделай $tpl->set переменной $totalpoints, например, в {points} и вставь в .tpl

Ссылка на сообщение
Поделиться на других сайтах

.php

$sql = "SELECT points FROM ".USERPREFIX."_users WHERE user_id='{$user_id}'";

$res = $db->super_query($sql);

$totalpoints = $res['points'];


$tpl->set('{totalpoints}', $totalpoints);

.tpl
{totalpoints}

Опять пусто.

Ссылка на сообщение
Поделиться на других сайтах

не в плюсах дело :lol:

напиши в лс твою аську, попробуем вместе решить вопрос :)

Ссылка на сообщение
Поделиться на других сайтах

Если проблема не решилась до сих пор, то добавьте в шаблон login.tpl перед "?>" ну или куда там хотите:

$uid = $member_id['user_id'];

$sql = "SELECT points FROM ".USERPREFIX."_users WHERE user_id='{$uid}'";

$res = $db->super_query($sql);

$totalpoints = $res['points'];

$login_panel .= $totalpoints;
Сейчас написал так:
$sql = "SELECT count(*) AS count FROM dle_users";

$res = $db->super_query($sql);

$count = $res['count'];

$login_panel .= $count;

и получил 37 юзеров, т.е. код 100% рабочий, если не показывает цифру, значит, что-то в запросе копать нужно.

Ссылка на сообщение
Поделиться на других сайтах

Разобрался, в профиль информацию вывел. Единственная проблема - у всех юзеров выводится двойка) Двойка - это зачение поля points у юзера с Id 1. Тоесть не определяется ID юзера

Изменено пользователем kingkill
Ссылка на сообщение
Поделиться на других сайтах

Я это уже писал в аську, что id не селектится :) нужно найти в какую переменную он заносится, т.к. в той переменной он не содержится

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...