$username = $_SESSION['username'];
$result7=mysql_query ("SELECT id,avatar FROM users WHERE username='$username'");
$myrow7= mysql_fetch_assoc($result7);
printf ("<p><img src='img/avatars/%s' width='70' height='70'/></p>",$myrow7["avatar"]);
ну в этом случае аватар выводится возле первого сообщения, и только в том случае если пользователь онлайн, да и еще не соответствует комментарию, то есть я прокомментил что-то со своего аккаунта появился мой аватар, зашёл с другого аккаунта возле того сообщения другой аватар, помогите пожалуйста решить эту проблему, если можно обьясните как для тупых))) Всего доброго
Спустя 3 часа, 38 минут, 49 секунд (11.03.2010 - 07:54) kirik написал(а):
shmit
Так вам нужно вытягивать аватарку не того пользователя, который просматривает страницу, а того кто запостил сообщение. Тоесть переменная $username должна содержать имя автора сообщения (или его id - тогда запрос чутка поправить нужно).
Так вам нужно вытягивать аватарку не того пользователя, который просматривает страницу, а того кто запостил сообщение. Тоесть переменная $username должна содержать имя автора сообщения (или его id - тогда запрос чутка поправить нужно).
Спустя 15 минут, 43 секунды (11.03.2010 - 08:09) Семён написал(а):
Кирик правильно дал мысль от себя лишь добавлю:
В твоём случае выборка происходит из таблицы users, а в теории должна из comments к примеру, где будет ячейка avatar или userid пользователя у которого нужно взять аватар.
В твоём случае выборка происходит из таблицы users, а в теории должна из comments к примеру, где будет ячейка avatar или userid пользователя у которого нужно взять аватар.
Спустя 45 минут, 7 секунд (11.03.2010 - 08:54) Nikitian написал(а):
Вывод комментов происходит в опрощённом виде так:
Вам надо связать комменты с аватарами их авторов. Предположу структуру таблиц:
И где выводятся комменты добавляете
$result=mysql_query ("SELECT * FROM comments WHERE cat=$x");
Вам надо связать комменты с аватарами их авторов. Предположу структуру таблиц:
$result=mysql_query ("SELECT comm.*,user.avatar FROM comments as comm left join users as user on (user.id=comm.user_id) WHERE comm.cat=$x");
И где выводятся комменты добавляете
if($myrow["avatar"]!="")printf ("<p><img src='img/avatars/%s' width='70' height='70'/></p>",$myrow["avatar"]);//Условие на случай допуска анонимных комментов.
Спустя 4 часа, 21 минута, 54 секунды (11.03.2010 - 13:16) shmit написал(а):
Спасибо, ребята, попробую что-то сделать, не знаю конечно или получится)
Спустя 10 минут, 4 секунды (11.03.2010 - 13:26) shmit написал(а):
Блин, не догнал, у меня 2 разные таблицы, в первой хранятся комментарии ( comments ) вторая с пользователями ( users ).
Я должен взять с таблицы cоmments id который равняется username.
Но не могу сделать(((
Вот мой код
Я должен взять с таблицы cоmments id который равняется username.
Но не могу сделать(((
Вот мой код
<?php
$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <img src='img/pos.gif' width='9' height='12'> <strong>%s</strong><br>Дата: %s</p>
<p class='read2'>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);
}
while ($myrow3 = mysql_fetch_array($result3));
}
?>
Спустя 13 минут, 56 секунд (11.03.2010 - 13:40) DedMorozzz написал(а):
omg, оформляй в теги. Читать не возможно
Спустя 4 минуты, 31 секунда (11.03.2010 - 13:45) shmit написал(а):
Извините
Спустя 6 часов, 46 минут, 6 секунд (11.03.2010 - 20:31) kirik написал(а):
Так и думал - от кода поповщиной несет за метр $result3, $result4, $result5.. - жесть.
- никогда не используй цикл do-while при вытаскивании результатов запроса
- никогда не вытаскивай все поля (*) если тебе нужны только три
- если работаешь с mysql заключай название полей и таблиц в обратные апострофы
- используй mysql_free_result после выполнения операций над результатом запроса для очиски памяти
- зачем использовать prinf(), когда echo + конкатенация читабелнее и быстрее?
Теперь по поводу аватарок..
У тебя поле author в таблице comments чего содержит?
- никогда не используй цикл do-while при вытаскивании результатов запроса
- никогда не вытаскивай все поля (*) если тебе нужны только три
- если работаешь с mysql заключай название полей и таблиц в обратные апострофы
- используй mysql_free_result после выполнения операций над результатом запроса для очиски памяти
- зачем использовать prinf(), когда echo + конкатенация читабелнее и быстрее?
$result3 = mysql_query ("SELECT `author`, `date`, `text` FROM `comments` WHERE `post` = '{$id}'", $db);
if (mysql_num_rows($result3) > 0)
{
while ($myrow3 = mysql_fetch_assoc($result3))
{
echo '
<div class="post_div">
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
}
}
mysql_free_result($result3);
Теперь по поводу аватарок..
У тебя поле author в таблице comments чего содержит?
Спустя 1 час, 46 минут, 4 секунды (11.03.2010 - 22:17) shmit написал(а):
Там у меня хранятся имена людей которые добавили комментарии, насчёт Попова могу сказать, я купил его диск и для начала мне хватило, в php я совсем новичёк, Вам знатокам виднее , спасибо за совет)
Спустя 30 минут, 46 секунд (11.03.2010 - 22:48) sergeiss написал(а):
shmit - про то, что kirik сказал, более подробно можешь тут почитать: http://phpforum.ru/index.php?showtopic=21916. Тема специально для "жертв поповщины" создана была Очень рекомендую.
Спустя 6 минут, 33 секунды (11.03.2010 - 22:54) shmit написал(а):
Спасибо, но все же хотелось бы узнать как же аву вывести)
Спустя 7 часов, 5 минут, 36 секунд (12.03.2010 - 06:00) kirik написал(а):
Да, чет упустил тему
Если у тебя author.comments содержит имя и users.username тоже имя, то можно их сджоинить как предложил Nikitian:
Единственное: author.comments и users.username нужно сделать индексами (users.username можно даже уникальным, если оно такое). А вообще лучше оперировать не текстом а числами - в author.comments записывать не имя пользователя а его id из таблицы users
Если у тебя author.comments содержит имя и users.username тоже имя, то можно их сджоинить как предложил Nikitian:
$query = "SELECT
`c`.`author`,
`c`.`date`,
`c`.`text`,
`u`.`avatar`
FROM `comments` AS `c`
LEFT JOIN `users` AS `u` ON `u`.`username` = `c`.`author`
WHERE `c`.`post` = '{$id}'";
$result3 = mysql_query ($query, $db);
if (mysql_num_rows($result3) > 0)
{
while ($myrow3 = mysql_fetch_assoc($result3))
{
echo '
<div class="post_div">
<p><img src="img/avatars/' . $myrow3['avatar'] . '" width="70" height="70"/></p>
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
}
}
mysql_free_result($result3);
Единственное: author.comments и users.username нужно сделать индексами (users.username можно даже уникальным, если оно такое). А вообще лучше оперировать не текстом а числами - в author.comments записывать не имя пользователя а его id из таблицы users
Спустя 4 минуты, 17 секунд (12.03.2010 - 06:04) kirik написал(а):
И да, вот ресурс специально для новичков - http://irbis-team.com/ от нашего товарища twin'a.
Спустя 8 часов, 18 минут, 35 секунд (12.03.2010 - 14:23) shmit написал(а):
Спасибо, я еще вчера нашел тот сайт, то что нужно)
kirik напиши номер R кошелька, (веб мани ).
kirik напиши номер R кошелька, (веб мани ).
Спустя 8 минут, 21 секунда (12.03.2010 - 14:31) shmit написал(а):
Все работает, еще раз спасибо, конечно для меня код этот вообще не понятен, но буду разбираться
Спустя 21 минута, 50 секунд (12.03.2010 - 14:53) shmit написал(а):
Еще один вопрос, у меня на сайте много комментов, когда еще не было регистрации, и зарегистрированные пользователи не отвечают тем что на сайте, одним словом те комменты что раньше были ( их владельцы ) не числятся в базе зарегистрированных, как мне через оператор их элсо вывести стандартный аватар для них?
Спустя 5 часов, 10 минут, 40 секунд (12.03.2010 - 20:04) kirik написал(а):
shmit
Замени
на
где img/default.jpg - стандартный аватар.
Замени
echo '
<div class="post_div">
<p><img src="img/avatars/' . $myrow3['avatar'] . '" width="70" height="70"/></p>
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
на
echo '
<div class="post_div">
<p><img src="' . (empty($myrow3['avatar']) ? 'img/default.jpg' : 'img/avatars/' . $myrow3['avatar']) . '" width="70" height="70"/></p>
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
где img/default.jpg - стандартный аватар.
Спустя 2 часа, 29 минут, 30 секунд (12.03.2010 - 22:33) shmit написал(а):
Спасибо! Номер кошелька напиши)
Спустя 3 часа, 56 минут, 16 секунд (13.03.2010 - 02:29) kirik написал(а):
Цитата (shmit @ 12.03.2010 - 14:33) |
Номер кошелька напиши |
Забей
Спустя 3 минуты, 45 секунд (13.03.2010 - 02:33) shmit написал(а):
Как знаешь) Скажи как так можно выучить php как ты? У меня просто мозг кипит, не знаю за что хвататься и как усовершенствовать свои знания, может книг купить?)
Спустя 2 часа, 32 минуты, 50 секунд (13.03.2010 - 05:06) kirik написал(а):
Нормально, вначале всегда так. Просто пока пиши больше и разного. Можешь даже волонтером в какой-нить проект навязаться. Туси на форумах, пробуй отвечать на вопросы совсем новичков (более опытные поправят, если что) - это самое крутое обучение по-моему. Ибо обучая обучаешься Тут на форуме иногда конкурсы проводятся, тоже очень полезно - напишут о твоих ошибках и, если будут вопросы, можешь всегда спросить.
Самое главное - не спрашивай пока сам не просидишь над решением хотя бы пару дней иначе обленишься совсем Почаще залазь на php.net - просто броди, смотри функции, пробуй как они работают.
Оно ведь как снежный ком, чем дальше идешь тем больше интересностей появляется.
Удачи!
Самое главное - не спрашивай пока сам не просидишь над решением хотя бы пару дней иначе обленишься совсем Почаще залазь на php.net - просто броди, смотри функции, пробуй как они работают.
Оно ведь как снежный ком, чем дальше идешь тем больше интересностей появляется.
Удачи!
Спустя 41 минута, 43 секунды (13.03.2010 - 05:48) shmit написал(а):
Спасибо, респект тебе)