Вземане на аватарите

  • Автор Автор nBN
  • Начална дата Начална дата

nBN

Registered
Здравейте, проблема ми е следния, искам да взема аватарите на потребителите коментирали картинката, как ще стане, аватарите ги вземам от users, а pic_comments е таблицата за коментарите.
Аз го правя с $_GET[id], но така взема idto на потребителя, който разглежда коментарите. Благодаря предваритлно ! :):)

Таблиците....
users
pic_comments
 
а къде се записват коментарите и там какво записваш за потребителя id ли е
ако е ид става така
Код:
SELECT * FROM user WHERE poster_id=$poster_id
 
ето ти един прост код .. ти само замести в някакъв друг файл .. за да видиш как стават работите ..

Така .. да речем ,че потребителя е влезнал в на този адрес ..
http://may_site.com/view.php?id=1

PHP:
<?php
// Ok , ся първата ти работа е да вземеш ИД-то и да го ескейпнеш 
$pic_id = trim(htmlspecialchars($_GET['id']));
// сега след като имаш ИД-то на снимката .. 
//време е за  първата заява , с която ще вземем снимката и ще я покажем .. 
$pics_q = mysql_query("SELECT * FROM `tablicata_s_sniki` WHERE `id`='$pic_id'");
$picture  = mysql_fetch_array($pics_q); // тъй като става дума само за 1 снимка .. няма нужда от цикъл .. 
//$picture['scr'] -> това е полето от ДБ-то , в което записваш пътя до снимката
//$picture['title'] -> това е полето от ДБ-то , в което записваш някакво заглавие на снимката или нещо такова .. 
echo "<img src='".$picture['scr']."' width='700' border='0' title='".$picture['title']."'>"; // изкарваш снимката
// и ся коментарите .. 

//////////////////////////////////////////////////////////////////////////////////////////
// ся нещо важно .. ии един савет .. щото като та гледам майй няяш опит с PHP и Mysql структората .. 
// когато прайшш таблица със  коментари трябва да записваш ИД-то на снимката , аватара ,потребителкосто име на автора  .. 
// кометара  и таймстамп-а (времето когато го е написал ..)
// и сега .. 
//////////////////////////////////////////////////////////////////////////////////////////
$comments_q = mysql_query("SELECT * FROM `tablicata_s_comentari` WHERE `pic_id`='$pic_id'"); // Вземи всичко от .. 
while($com = mysql_fetch_array($comments_q)) // тука вече трябва  Уайл (цикъл) .. за да изкараме всички коментари .. 
{
   echo "коментар от: <img src='".$com['avatar']."' width='100' /> коментар от: ".$com['username']." / от ".date("d.m.Y - H:i",$com['timestamp'])." <br/><br/>";
   echo $com['comment'] ." <hr /> ";
}
// ок сяя..  малко обяснение .. ПАК !
// $com['username'] -> това е ИМЕТО  на АВТОРА на комнетара .. 
// $com['comment']  -> това е полето в ДБ-то кадето си записал кометара на потребителя
//$com['avatar']      -> това е полето в ДБ-то кадето си записал аватара на потребителя
// $com['timestamp'] ->  това е полето в ДБ-то кадето си записал ВРЕМЕТО В СЕКУНДИ  ( time()  )  
// и за да го форматираш така както искаш .. го съчетаваш с функцията date()
//тя може да приема 2 пъраметара .. date(format na izkarwane. timestamp-a) .. 
// d -  ден .  m - месец  , Y - година - H - час , i - мин   <<<<<  птосто  да зн  г/д кво може да сложиш .. 
//////////////////////////////////////////////////////////////////////////////////////////////

// Оуукейй .. ма има и друг вариян, който е мнго дървен и гледам ти по него си тръгнал .. 
//ето ги и него ..  
$comments_q = mysql_query("SELECT * FROM `tablicata_s_comentari` WHERE `pic_id`='$pic_id'"); // Вземи всичко от .. 
while($com = mysql_fetch_array($comments_q)) // тука вече трябва  Уайл (цикъл) .. за да изкараме всички коментари .. 
{
  
  $u_avatar = mysql_fetch_array(mysql_query("SELECT * FROM `tablicata_s_potrebiteli` WHERE `username`='".$com['username']."'"));
  $avatar = $u_avatar['avatar'];
  
   echo "коментар от: <img src='".$avatar."' width='100' /> коментар от: ".$com['username']." / от ".date("d.m.Y - H:i",$com['timestamp'])." <br/><br/>";
   echo $com['comment'] ." <hr /> ";
   
}
// Емии .. тва е начина ..  но е доста грешен и  дървен .. ! 
// Що ли .. ?!  .. 
// ми много просто  ,  първо пускаш цикъл да ти изкара коментарите , а вътре още една заявка само за 1 аватар .. :X .. 
// както и да е   тука немисля ,че  ще трябва да обясня ..
 
M1tq96
Не разбрах защо минаваш pic_id през trim и htmlspecialchars, като това е число и е нужно да се мине само през (int) или abs() може също и is_numeric
$pic_id = isset($_GET['pic_id']) ? abs((int)$_GET['id']) : NULL;

По този начин всичко което е различно от число или пък е отрицателно число ще върне NULL
 
щото може да не е Ид-то на снимката а заглавието или някакъв друг индокатор .. както и да е .. прав си забварих .. понеже го писах тука кода .. :idea:
 

Back
Горе