X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Вывод списка пользователей
BoL4oNoK
BoL4oNoK
Topic Starter сообщение 19.1.2011, 21:52; Ответить: BoL4oNoK
Сообщение #1


Есть БД и скрипт:
[PHP]<?php $query = "SELECT * FROM `users`";

$sql = mysql_query($query) or die(mysql_error());

$count = mysql_num_rows($sql);

if ($count >= 5) {

$query = "SELECT *
FROM `users`
ORDER BY `id`
DESC LIMIT 5";
$sql = mysql_query($query) or die(mysql_error());

for ($x = 1; $x <= 5; $x++) {
$row = mysql_fetch_assoc($sql);
$id = $row['id'];
$login = $row['login'];
$usname = $row['Name'];

if (isset($_SESSION['user_id'])) {
$query = "SELECT *
FROM `users`
WHERE `id`='{$_SESSION['user_id']}'
LIMIT 1";
$sql = mysql_query($query) or die(mysqlerror());
if (mysql_num_rows($sql)==1) {
$res = mysql_fetch_assoc($sql);
$name = $res['login'];
}
}

if ($name == $login) {
echo '<a href="/profile/" title="Просмотреть профиль">'.$usname.'('.$login.')</a><br />';
} else {
echo '<a href="/profile/?author='.$id.'" title="Просмотреть профиль">'.$usname.'('.$login.')</a><br />';
}
}
} else {
$query = "SELECT *
FROM `users`
ORDER BY `id`";
$sql = mysql_query($query) or die(mysql_error());

for ($x = 1; $x <= $count; $x++) {
$row = mysql_fetch_assoc($sql);
$id = $row['id'];
$login = $row['login'];
$usname = $row['Name'];

if (isset($_SESSION['user_id'])) {
$query = "SELECT *
FROM `users`
WHERE `id`='{$_SESSION['user_id']}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql)==1) {
$res = mysql_fetch_assoc($sql);
$name = $res['login'];
}
}

if ($name == $login) {
echo '<a href="/profile/" title="Просмотреть профиль">'.$usname.'('.$login.')</a><br />';
} else {
echo '<a href="/profile/?author='.$id.'" title="Просмотреть профиль">'.$usname.'('.$login.')</a><br />';
}

}
} [/PHP]

В БД 2 пользователя. 1 он выводит, вместо второго:
<a href="/profile/?author=" title="Просмотреть профиль">()</a><br />
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 19.1.2011, 21:55; Ответить: alexdrob
Сообщение #2


ммм... что за странный скрипт... я бы посоветовал переделать. Опешите что вы хотите получить, подскажу как)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BoL4oNoK
BoL4oNoK
Topic Starter сообщение 19.1.2011, 21:59; Ответить: BoL4oNoK
Сообщение #3


На главной странице вывести 5 последних пользователей(кто зарегился), если в БД меньше 5 записей - вывести все. Если человек залогинился и его имя в списке, то по ссылке он переходит в свой профиль (site.ru/profile/), по другим ссылкам переходит в профиль выбранного пользователя (site.ru/profile/?id={ID пользователя})
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 19.1.2011, 22:11; Ответить: alexdrob
Сообщение #4


[PHP]<?php
$sql = "select * from `users` order by `id` desc limit 5";
$res = mysql_query($sql);
if (mysql_num_rows($res)>0)
{
while ($row = mysql_fetch_array($res))
{
echo '<a href="/profile/'.( $_SESSION['user_id'])==$row['id'] ? '?author='.$row['id'] : '' ).'">'.$row['name'].'</a>';
}
}
else
{
echo "Пользователей нет!"
}
?>[/PHP]

хотя лишнее наверное писать что юзеров нет вообще, так как хотя бы админ то будет зареган )
[PHP]<?php
$res = mysql_query("select * from `users` order by `id` desc limit 5");
while ($row = mysql_fetch_array($res)){
echo '<a href="/profile/'.( $_SESSION['user_id'])==$row['id'] ? '?author='.$row['id'] : '' ).'">'.$row['name'].'</a>';
}
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BoL4oNoK
BoL4oNoK
Topic Starter сообщение 19.1.2011, 22:39; Ответить: BoL4oNoK
Сообщение #5


(alexdrob @ 20.1.2011, 00:11) *
[PHP]echo '<a href="/profile/'.( $_SESSION['user_id'])==$row['id'] ? '?author='.$row['id'] : '' ).'">'.$row['name'].'</a>';[/PHP]

Можете пояснить код? А то я не понял как он работает? Как я понимаю, это проверка на совпадение ID в сессии и ID пользователя в БД?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 19.1.2011, 22:48; Ответить: alexdrob
Сообщение #6


если id в сессии равен текущему id в цикле вывода то вывести '?author='.$row['id'] иначе нечего
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BoL4oNoK
BoL4oNoK
Topic Starter сообщение 19.1.2011, 23:03; Ответить: BoL4oNoK
Сообщение #7


(alexdrob @ 20.1.2011, 00:48) *
если id в сессии равен текущему id в цикле вывода то вывести '?author='.$row['id'] иначе нечего

А если это нужно наоборот? Т.е. если id в сессии равен текущему id в цикле вывода то ничего не выводить, то "==" заменить на "<>"?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 19.1.2011, 23:06; Ответить: alexdrob
Сообщение #8


переставьте местами тут
'?author='.$row['id'] : '' -> '' : '?author='.$row['id']
или сделайте проверку
$_SESSION['user_id'])!=$row['id']
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
BoL4oNoK
BoL4oNoK
Topic Starter сообщение 19.1.2011, 23:18; Ответить: BoL4oNoK
Сообщение #9


Что-то не пойму,
while ($row = mysql_fetch_array($res))

откуда берется $row
И разве "=" не является присваиванием?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 19.1.2011, 23:21; Ответить: alexdrob
Сообщение #10


Вы сами на свой вопрос ответили)
(BoL4oNoK @ 20.1.2011, 01:18) *
откуда берется $row

ответ
(BoL4oNoK @ 20.1.2011, 01:18) *
"=" является присваиванием
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Ручной обмен, ввод/вывод электронных валют | ЮMoney, WMZ, Крипта, Приват, Монобанк | Низкие комиссии, минимальные суммы сделок
быстро, удобно, по доступному курсу
200 Sostavitel 98290 11.2.2024, 21:07
автор: Wolfhound
Открытая тема (нет новых ответов) Sbitcoin.ru – Ввод, Вывод, Обмен: Qiwi, YD, Btc, Btc-e, PM, Cash IN, PR24, MG, WU, Нал (RU, UA).
9 sbitcoinru 6788 10.10.2023, 19:25
автор: Sbitcoin
Горячая тема (нет новых ответов) Обмен WebMoney - Яндекс - QIWI. Вывод/ввод Приват24 UAH
225 himin 132951 7.5.2023, 13:26
автор: Вера_Симонова
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлы«»101Crypta.com«»ВВОД/ВЫВОД/ОБМЕН«»BTC/ETH/QIWI/USDT/VISA/MC«»НАЛИЧНЫЕ/СНГ/ЕВРОПА«»
13 101Crypta 12166 18.4.2023, 23:15
автор: 101Crypta
Открытая тема (нет новых ответов) Нужен вывод в топ наших роликов Youtube
3 wep 1932 23.3.2023, 17:39
автор: distrib095


 



RSS Текстовая версия Сейчас: 26.4.2024, 6:29
Дизайн