![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Есть 3 таблицы
1 users - Данные о юзере -при регистрации
2 session - id сессии , время входа последнего , и id самого usera
3 friend - friend_id - айди друга, user_id - айди узера которы пригласил его , и дата приглашения
Возможно както ли показать кто и твоих друзей online в данный момент
прототит как на одноклассниках - чтобы юзер 1 защел и увидел Всех друзей и из этих всех показать кто онлайн
Спасибо огромное
function myfriends($id){ $query = "SELECT mc_surname, mc_name, IF(friend_id,1,0) AS is_online FROM session LEFT JOIN friend ON (session.users = friend.friend_id) LEFT JOIN mc_users ON (session.users = mc_users.id) WHERE session.users <> $id"; $friends = "Friends currently online: "; $others = "Others online: "; $result = mysql_query($query) or die ('asd'); //$online = mysql_fetch_assoc($result); while ($online = mysql_fetch_assoc($result)) { if ($online['is_online']) { $friends .= $online['mc_name'] . ", "; } else { $others .= $online['mc_name'] . ", "; } } return $friends. " ". $others; }
Вот мой запрос тоесть когда я захожу юзером 1 -то мне показывает всех кто онлайн потом когда захожу юзером 2 то показывать недолжно нечё так как у него нет друга - но скрипт всеравно показывает Ж(
Неактивен
тебе явно не надо выбирать mc_surname и mc_name текущего юзера (session.users = mc_users.id). наверное, все-таки, надо выбирать значения, связанные с friend.friend_id.
Неактивен
Простименя пожалуйста но я не очень понял.... о_О обясните логику как это вооюще делается... спасибо всем
Неактивен
Товаришчи направте пожалуйста
Неактивен
Необходимо модифицировать запрос:
$query = "SELECT mc_surname, mc_name, IF(friend_id,1,0) AS is_online FROM session LEFT JOIN friend ON (session.users = friend.friend_id) LEFT JOIN mc_users ON (session.users = mc_users.id) WHERE session.users <> $id";
Сейчас он построен странно - в нем нет условия WHERE для выбора друзей пользователя именно с заданным id. Условие, которое приведено, кажется призвано не отображать самого себя как собственного друга. Поясните назначение таблиц в запросе
Неактивен
Вот таблицы..
1 mc_users - Данные о юзере - при регистрации ( id. пароль маил и.т.д )
2 session - id сессии , время последнего входа , и id самого usera который зашёл - при входе записывается
3 friend - friend_id - айди друга, user_id - айди узера которы пригласил его , и дата приглашения
Вот вроде нечё не забыл.... Спасибо
Уважаемые знатоки - всё что нужно ето вывести всех моих друзей и показать статус их, онлайн или нет -- пожалуйста направте!
Отредактированно Борис (21.07.2008 18:16:53)
Неактивен
rgbeast написал:
Необходимо модифицировать запрос:
$query = "SELECT mc_surname, mc_name, IF(friend_id,1,0) AS is_online FROM session LEFT JOIN friend ON (session.users = friend.friend_id) LEFT JOIN mc_users ON (session.users = mc_users.id) WHERE session.users <> $id";
Сейчас он построен странно - в нем нет условия WHERE для выбора друзей пользователя именно с заданным id. Условие, которое приведено, кажется призвано не отображать самого себя как собственного друга. Поясните назначение таблиц в запросе
Да совершенно верно я может гдето сглупил -- поправте пожалуйста!
Неактивен
должен быть примерно такой запрос
$query = "SELECT mc_surname, mc_name, IF(session.users,1,0) AS is_online FROM friend LEFT JOIN session ON (session.users = friend.friend_id) LEFT JOIN mc_users ON (friend.friend_id = mc_users.id) WHERE friend.id='$id'";
Неактивен
Спасибо - попробую отпишу но всёже я склоняюсь что
$query = "SELECT mc_surname, mc_name, IF(session.users,1,0) AS is_online FROM friend LEFT JOIN session ON (session.users = friend.friend_id) LEFT JOIN mc_users ON (friend.friend_id = mc_users.id) WHERE friend.id='$id'";
WHERE friend.id='$id'"; - может сюда поставить WHERE user_id='$id'"; tak kak $id берётся из Sessi тоесь я зашёл мне присвоили id = 1 и мне показывается мои друзья .
Таблица friend:
-----------------------------------------------
friend_id | user_id | date_add |
-----------------------------------------------
3 | 1 | 12.07.2008 |
-----------------------------------------------
6 | 1 | 12.07.2008 |
-----------------------------------------------
Таблица session:
----------------------------------------------------------------------
session_id | enter_data | user | user - это id vhoda --- to 4to ia vishe pisal
----------------------------------------------------------------------
df765df7g5d76fd5gasd7f | 12.04.2008 | 1 |
----------------------------------------------------------------------
df765df7g5d76fd5gasd7f | 12.04.2008 | 10 |
----------------------------------------------------------------------
df765df7g5d76fd5gasd7f | 12.04.2008 | 6 |
----------------------------------------------------------------------
Таблица mc_users:
--------------------------------------------------------------------------------------------------------------
id auto_inrement | mc_name | mc_surname | mc_email | mc_pass | id auto_inrement -- sovpadaet s tablitsei session -user i tabli
--------------------------------------------------------------------------------------------------------------
1 | Vasia | Pupkin tsei friend - user_id
--------------------------------------------------------------------------------------------------------------
2 | Jora | Mashin
vot kak
Отредактированно Борис (21.07.2008 20:06:05)
Неактивен
Спасибо вроде получилось!
Ура!
Неактивен
Я извеняюсь может вопрос не по теме - но как вывести данные из базы в таком виде HTML
4 колонки
-----------------------------------------------------------------------------------
| зпись 1 | зпись 2 | зпись 3 | зпись 4 |
-----------------------------------------------------------------------------------
| зпись 5 | зпись 6 | зпись 7 | зпись 8 |
-----------------------------------------------------------------------------------
| зпись 9 | зпись 10 | зпись 11 | зпись 12 |
-----------------------------------------------------------------------------------
| зпись 13 | зпись 14 | зпись 15 | зпись 4 |
-----------------------------------------------------------------------------------
$result = mysql_query($query) or die ('asd');
$others . ="<tr>";
while ($online = mysql_fetch_assoc($result))
{
if ($online['is_online'])
{
$others .= "<td>".$online['mc_name'] . "</td> ";
}
else
{
$others .= "<td>".$online['mc_name'] . "</td> ";
}
$others . ="</tr>";
}
незнаю может цикл for нужен для колонок токак незнаю куда и как ....
Направте пожалуйста....
for($i=1; $i<=100; $i=$i+4)
{
echo '<tr>';
for($tr=$i; $tr<($i+4); $tr++)
{
if(rand(0,1)){
echo '<td>'.$tr.'online</td>';
}else{
echo '<td>'.$tr.'</td>';
}
}
echo '</tr>';
}
Вот ещё то что надо но куда сдесть поставить mysql_fetch_assoc($result)???? tam gde 100 sootvetsvetto ia budu shitati polia
Отредактированно Борис (22.07.2008 16:54:30)
Неактивен