Artykuły i komentarze w profilu usera
|
Leo |
Dodany dnia 25.11.2006 19:38:46
|
Przedszkolak
Postów: 31
Data rejestracji: 17.08.2006 11:00
|
Witam,
chciałem dodać do profile.php wykaz tutułów artykułów jakie dodał user jak i komentarze dadane przez niego (komentarze tylko z artykułów).
Mam problem gdyż nie wiem jak powinny wyglądać zapytania do bazy w obu przypadkach. Od strony ułożenia tego w tabele itp. to juz sobie poradze ale gdyby ktoś był w stanie pomóc mi z tym od strony zapytań byłbym bardzo wdzięczny.
pozdrawiam |
|
|
|
Wścibski Gość |
Dodany dnia 25.11.2024 15:25:38
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
wlodekp |
Dodany dnia 26.11.2006 02:21:28
|
Weteran
Postów: 3101 Pomógł: 29
Data rejestracji: 21.05.2005 22:27
|
Tylko pokazuję którędy:
if (iMEMBER) {
openside($userdata['user_name']);
$result = dbquery("SELECT * FROM ".DB_PREFIX."articles WHERE article_name='".$userdata['user_id']."'");
while($data = dbarray($result)){
echo "<a href='readarticle.php?article_id=".$data['article_id']."'>".$data['article_subject']."<br></a>\n";}
te czerwone jest dopisane pod oryginalnym kodem user_info_panel 6.01.6
Tak mniej więcej wygląda zapytanie do tytułów artykułów i link do treści wyświetlanie to już kosmetyka-pole dla Ciebie podobnie z komentarzami tylko inna tabela ale zasada ta sama
Edytowane przez wlodekp dnia 26.11.2006 02:47:02
|
|
|
|
slawekneo |
Dodany dnia 26.11.2006 17:53:52
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
@wlodekp kod zapytania ktory powinien wstawic @leo do profile.php powinien wygladac tak (mala poprawka Twojego kodu)
$result = dbquery("SELECT * FROM ".DB_PREFIX."articles WHERE article_name='".[b]$lookup[/b]."'");
wyjasnienie zapytanie poprzednie pokazywaloby artykuly osoby(usera) ogladajacej a nie ogladanej w przypadku gdy jest to gosc to nic niepokazuje
a co do prosby o kod z komentarzami to prosze bardzo w pliku profile.php pomiedzy linia 103 a 104 czyli <td class='tbl2'>".number_format(dbcount("(comment_id)", "comments", "comment_name='".$data['user_id']."'"))."</td>
</tr>
[b]tutaj[/b]
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u043']."</b></td>
wklejasz ten kod ";
$result = dbquery("
SELECT ta.article_subject, ta.article_id, tcm.*
FROM ".DB_PREFIX."comments tcm
INNER JOIN ".DB_PREFIX."articles ta on tcm.comment_item_id=ta.article_id
WHERE comment_type='A' AND comment_name='".$lookup."'
ORDER BY comment_datestamp ASC"
);
if (dbrows($result) != 0) {
echo"<tr>
<td width='1%' class='tbl2' style='white-space:nowrap' valign='top'><b>Z artów:</b></td>
<td class='tbl2'>";
$i = 0;
while ($comment_data = dbarray($result)) {
$comment_message = $comment_data['comment_message'];
$comment_message = nl2br(parseubb($comment_message));
echo "<span class='small'><b>Temat artykulu:</b> <i>".$comment_data['article_subject']."</i><br>
<b>Tresc:</b> ".$comment_message."<br><b>Napisano:</b> <i>".showdate('forumdate', '$comments_data[comment_datestamp]')."</i></span><br><hr>";
}
echo"</td>
</tr>";
}
echo"
Pozdro!!
Edytowane przez slawekneo dnia 26.11.2006 19:13:25
|
|
|
|
Leo |
Dodany dnia 26.11.2006 18:53:21
|
Przedszkolak
Postów: 31
Data rejestracji: 17.08.2006 11:00
|
Dzięki panowie za rady :)
Co do mojej prawie ostatecznej wersji to wygląda ona tak:
tablebreak();
echo "<br><table align='center' width='400' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'><b>Dodane Tutoriale:</b></td>";
$box_img = $open == "off" ? "off" : "on";
echo "<td class='tbl2' align='right'><img align='right' src='".THEME."images/panel_$box_img.gif' name='b_DodaneTutoriale:' alt='' onclick=\"javascript:flipBox('DodaneTutoriale:')\"></td></tr>\n";
echo "<tr>
<td colspan='2' class='tbl1'>
<div id='box_DodaneTutoriale:' style='display:none'>\n";
$result = dbquery("SELECT * FROM ".DB_PREFIX."articles WHERE article_name='".$data['user_id']."'");
while($data = dbarray($result)){
echo "<img src='".THEME."images/bullet.gif' alt=''> <a href='".BASEDIR."readarticle.php?article_id=".$data['article_id']."' class='side'>".$data['article_subject']."<br></a>\n";
}
echo "</div>";
echo "</td></tr></table>";
tablebreak();
echo "<br><table align='center' width='400' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'><b>Dodane Komentarze:</b></td>";
$box_img = $open == "off" ? "off" : "on";
echo "<td class='tbl2' align='right'><img align='right' src='".THEME."images/panel_$box_img.gif' name='b_DodaneKomentarze:' alt='' onclick=\"javascript:flipBox('DodaneKomentarze:')\"></td></tr>\n";
echo "<tr>
<td colspan='2' class='tbl1'>
<div id='box_DodaneKomentarze:' style='display:none'>\n";
$result = dbquery("SELECT * FROM ".DB_PREFIX."comments tcm
WHERE comment_name='".$lookup."'
ORDER BY comment_datestamp ASC");
while($data = dbarray($result)){
$comment_message = nl2br(parseubb($data['comment_message']));
$comment_item_id = $data['comment_item_id'];
$comment_type = $data['comment_type'];
if ($data['comment_smileys'] == "1") $comment_message = parsesmileys($comment_message);
echo "<span class='small'>".showdate("longdate", $data['comment_datestamp'])."</span><br><br>
".$comment_message."<br><br>";
if ($data['comment_type'] == "N") {
echo "<img src='".THEME."images/bullet.gif' alt=''><a href='".BASEDIR."news.php?readmore=".$data['comment_item_id']."'class='side'> zobacz komentarz</a><hr>";
}
else if ($data['comment_type'] == "A") {
echo "<img src='".THEME."images/bullet.gif' alt=''><a href='".BASEDIR."readarticle.php?article_id=".$data['comment_item_id']."' class='side'> zobacz komentarz</a><hr>";
}
else {
echo "<center><b>Brak komentarzy</b></center>";
}
}
echo "</div>";
echo "</td></tr></table>";
I jakoś działa ale jeszcze chcę dodać kilka rzeczy.
Mam właśnie jedno pytanko jak będzie wyglądała w moim przypadku wersja dla tutaj Tutoriali (domyślnie komentarzy) gdy ich będzie brak czyli "else" jak to zrobiłem dla komentarzy. Gdyż wyskakuja mi błędy i nie moge sobie poradzić.
Edit:
A jednak w obu wypadkach to nie dziala. Chodzi mi o to że jak będzie brak artów czy komentarzy to żeby po rozwinięciu wyświetlił się napis "Brak...."
pozdrawiam
Edytowane przez Leo dnia 26.11.2006 19:25:58
|
|
|
|
slawekneo |
Dodany dnia 26.11.2006 19:36:47
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
tablebreak();
echo "<br><table align='center' width='400' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'><b>Dodane Tutoriale:</b></td>";
$box_img = $open == "off" ? "off" : "on";
echo "<td class='tbl2' align='right'><img align='right' src='".THEME."images/panel_$box_img.gif' name='b_DodaneTutoriale:' alt='' onclick=\"javascript:flipBox('DodaneTutoriale:')\"></td></tr>\n";
echo "<tr>
<td colspan='2' class='tbl1'>
<div id='box_DodaneTutoriale:' style='display:none'>\n";
$result = dbquery("SELECT * FROM ".DB_PREFIX."articles WHERE article_name='".$data['user_id']."'");
[b]if (dbrows($result) != 0) {[/b]
while($data = dbarray($result)){
echo "<img src='".THEME."images/bullet.gif' alt=''> <a href='".BASEDIR."readarticle.php?article_id=".$data['article_id']."' class='side'>".$data['article_subject']."<br></a>\n";
}
[b]} else { echo"<center><b>Brak komentarzy</b></center>"; }[/b]
echo "</div>";
echo "</td></tr></table>";
tablebreak();
echo "<br><table align='center' width='400' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'><b>Dodane Komentarze:</b></td>";
$box_img = $open == "off" ? "off" : "on";
echo "<td class='tbl2' align='right'><img align='right' src='".THEME."images/panel_$box_img.gif' name='b_DodaneKomentarze:' alt='' onclick=\"javascript:flipBox('DodaneKomentarze:')\"></td></tr>\n";
echo "<tr>
<td colspan='2' class='tbl1'>
<div id='box_DodaneKomentarze:' style='display:none'>\n";
$result = dbquery("SELECT * FROM ".DB_PREFIX."comments tcm
WHERE comment_name='".$lookup."'
ORDER BY comment_datestamp ASC");
[b]if (dbrows($result) != 0) {[/b]
while($data = dbarray($result)){
$comment_message = nl2br(parseubb($data['comment_message']));
$comment_item_id = $data['comment_item_id'];
$comment_type = $data['comment_type'];
if ($data['comment_smileys'] == "1") $comment_message = parsesmileys($comment_message);
if ($data['comment_type'] == "N") {
echo "<span class='small'>".showdate("longdate", $data['comment_datestamp'])."</span><br><br>
".$comment_message."<br><br>";
echo "<img src='".THEME."images/bullet.gif' alt=''><a href='".BASEDIR."news.php?readmore=".$data['comment_item_id']."'class='side'> zobacz komentarz</a><hr>";
}
else if ($data['comment_type'] == "A") {
echo "<span class='small'>".showdate("longdate", $data['comment_datestamp'])."</span><br><br>
".$comment_message."<br><br>";
echo "<img src='".THEME."images/bullet.gif' alt=''><a href='".BASEDIR."readarticle.php?article_id=".$data['comment_item_id']."' class='side'> zobacz komentarz</a><hr>";
}
}
[b]} else { echo"<center><b>Brak komentarzy</b></center>"; }[/b]
echo "</div>";
echo "</td></tr></table>";
|
|
|
|
wlodekp |
Dodany dnia 26.11.2006 19:57:52
|
Weteran
Postów: 3101 Pomógł: 29
Data rejestracji: 21.05.2005 22:27
|
@slawekneo masz rację nie wstawiałem kodu do profilu tylko do user_info_panel widoczne tylko po zalogowaniu, a jemu nie o to chodziło-tylko o profil. Źle zinterpretowałem pytanie-Ty natomiast poprawnie.
|
|
|
|
Rap |
Dodany dnia 17.12.2006 15:18:26
|
Przedszkolak
Postów: 84
Data rejestracji: 30.07.2006 20:06
Złamana licencja
|
Chciałbym mieć tylko Artykuły, bez komentarzy, i gdy pod grupami użytkownika wklejam:
tablebreak();
echo "<br><table align='center' width='400' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'><b>Dodane Artykuły:</b></td>";
$box_img = $open == "off" ? "off" : "on";
echo "<td class='tbl2' align='right'><img align='right' src='".THEME."images/panel_$box_img.gif' name='b_DodaneArtykuły:' alt='' onclick=\"javascript:flipBox('DodaneArtykuły:')\"></td></tr>\n";
echo "<tr>
<td colspan='2' class='tbl1'>
<div id='box_DodaneArtykuły:' style='display:none'>\n";
$result = dbquery("SELECT * FROM ".DB_PREFIX."articles WHERE article_name='".$data['user_id']."'");
if (dbrows($result) != 0) {
while($data = dbarray($result)){
echo "<img src='".THEME."images/bullet.gif' alt=''> <a href='".BASEDIR."readarticle.php?article_id=".$data['article_id']."' class='side'>".$data['article_subject']."<br></a>\n";
}
} else { echo"<center><b>Brak komentarzy</b></center>"; }
echo "</div>";
echo "</td></tr></table>";
To strona się rozłazi, księga gości użytkownika znika... Oto całe profile.php:
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";
include LOCALE.LOCALESET."members-profile.php";
include LOCALE.LOCALESET."user_fields.php";
if (!isset($lookup) || !isNum($lookup)) fallback("index.php");
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id='$lookup'");
if (dbrows($result)) { $data = dbarray($result); } else { redirect("index.php"); }
opentable($locale['420'].$data['user_name']);
echo "<table align='center' cellpadding='0' cellspacing='0'>
<tr>\n<td class='tbl2' colspan='3'><b>".$locale['421']."</b></td>\n\n</tr>
<tr>\n<td align='center' width='150' rowspan='8' class='tbl'>\n";
echo ($data['user_avatar'] ? "<img src='".IMAGES."avatars/".$data['user_avatar']."'>" : $locale['u046'])."\n</td>\n";
echo "<td width='125' class='tbl'>".$locale['u005']."</td>\n<td class='tbl'>\n";
echo ($data['user_hide_email'] != "1" || iADMIN ? "<a href='mailto:".str_replace("@","@",$data['user_email'])."'>".str_replace("@","@",$data['user_email'])."</a>" : $locale['u047'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u009']."</td>\n<td class='tbl'>\n";
echo ($data['user_location'] ? $data['user_location'] : $locale['u048'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u010']."</td>\n<td class='tbl'>";
if ($data['user_birthdate'] != "0000-00-00") {
$months = explode("|", $locale['months']);
$user_birthdate = explode("-", $data['user_birthdate']);
echo $months[number_format($user_birthdate['1'])]." ".number_format($user_birthdate['2'])." ".$user_birthdate['0']."</td>\n</tr>\n";
} else {
echo $locale['u048']."</td>\n</tr>\n";
}
echo "<tr>\n<td class='tbl'>".$locale['u021']."</td>\n<td class='tbl'>\n";
echo ($data['user_aim'] ? $data['user_aim'] : $locale['u048'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u011']."</td>\n<td class='tbl'>\n";
echo ($data['user_icq'] ? $data['user_icq'] : $locale['u048'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u012']."</td>\n<td class='tbl'>\n";
echo ($data['user_msn'] ? $data['user_msn'] : $locale['u048'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u013']."</td>\n<td class='tbl'>\n";
echo ($data['user_yahoo'] ? $data['user_yahoo'] : $locale['u048'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u014']."</td>\n<td class='tbl'>";
if ($data['user_web']) {
$urlprefix = !strstr($data['user_web'], "http://") ? "http://" : "";
echo "<a href='".$urlprefix.$data['user_web']."' target='_blank'>".$data['user_web']."</a></td>\n</tr>\n";
} else {
echo $locale['u048']."</td>\n</tr>\n";
}
echo "<tr>\n<td class='tbl2' colspan='3'><b>".$locale['422']."</b></td>\n\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u040']."</td>\n<td class='tbl' colspan='2'>\n";
echo showdate("longdate", $data['user_joined'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u041']."</td>\n<td class='tbl' colspan='2'>\n";
echo dbcount("(shout_id)", "shoutbox", "shout_name='".$data['user_id']."'")."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u042']."</td>\n<td class='tbl' colspan='2'>\n";
echo dbcount("(comment_id)", "comments", "comment_name='".$data['user_id']."'")."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u043']."</td>\n<td class='tbl' colspan='2'>\n";
//echo dbcount("(post_id)", "posts", "post_author='".$data['user_id']."'")."</td>\n</tr>\n";
echo $data['user_posts']."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u044']."</td>\n<td class='tbl' colspan='2'>\n";
echo ($data['user_lastvisit'] != 0 ? showdate("longdate", $data['user_lastvisit']) : $locale['u049'])."</td>\n</tr>\n";
echo "<tr>\n<td class='tbl'>".$locale['u045']."</td>\n<td class='tbl' colspan='2'>\n";
echo getuserlevel($data['user_level'])."</td>\n</tr>\n";
if ($data['user_groups']) {
echo "<tr>\n<td class='tbl2' colspan='3'><b>".$locale['423']."</b></td>\n\n</tr>\n<tr>\n<td class='tbl' colspan='3'>\n";
$user_groups = (strpos($data['user_groups'], ".") == 0 ? explode(".", substr($data['user_groups'], 1)) : explode(".", $data['user_groups']));
for ($i = 0;$i < count($user_groups);$i++) {
echo getgroupname($user_groups[$i]);
if ($i != (count($user_groups)-1)) echo ", ";
}
echo "</td>\n</tr>\n";
}
tablebreak();
echo "<br><table align='center' width='400' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'><b>Dodane Artykuły:</b></td>";
$box_img = $open == "off" ? "off" : "on";
echo "<td class='tbl2' align='right'><img align='right' src='".THEME."images/panel_$box_img.gif' name='b_DodaneArtykuły:' alt='' onclick=\"javascript:flipBox('DodaneArtykuły:')\"></td></tr>\n";
echo "<tr>
<td colspan='2' class='tbl1'>
<div id='box_DodaneArtykuły:' style='display:none'>\n";
$result = dbquery("SELECT * FROM ".DB_PREFIX."articles WHERE article_name='".$data['user_id']."'");
if (dbrows($result) != 0) {
while($data = dbarray($result)){
echo "<img src='".THEME."images/bullet.gif' alt=''> <a href='".BASEDIR."readarticle.php?article_id=".$data['article_id']."' class='side'>".$data['article_subject']."<br></a>\n";
}
} else { echo"<center><b>Brak komentarzy</b></center>"; }
echo "</div>";
echo "</td></tr></table>";
if ($data['user_id'] != $userdata['user_id']) {
echo "<tr><td align='center' colspan='3' class='tbl'><br>\n<a href='messages.php?msg_send=".$data['user_id']."'>".$locale['u060']."</a>\n";
echo "</td>\n</tr>\n";
}
echo "</table>\n";
closetable();
tablebreak();
@include INFUSIONS."userguestbook_system/userguestbook_system.php";
require_once "side_right.php";
require_once "footer.php";
?>
|
|
|
|
soldier175 |
Dodany dnia 04.01.2007 22:48:09
|
Przedszkolak
Postów: 93
Data rejestracji: 03.04.2006 10:11
ZBANOWANY: Dożywotnio
|
A nie wiecie jak zrobić żeby było widać posty użytkownika po kliknięciu na "posty na forum " w jego profilu ?
slawekneo napisał/a:
a co do prosby o kod z komentarzami to prosze bardzo w pliku profile.php pomiedzy linia 103 a 104 czyli <td class='tbl2'>".number_format(dbcount("(comment_id)", "comments", "comment_name='".$data['user_id']."'"))."</td>
</tr>
[b]tutaj[/b]
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u043']."</b></td>
wklejasz ten kod ";
$result = dbquery("
SELECT ta.article_subject, ta.article_id, tcm.*
FROM ".DB_PREFIX."comments tcm
INNER JOIN ".DB_PREFIX."articles ta on tcm.comment_item_id=ta.article_id
WHERE comment_type='A' AND comment_name='".$lookup."'
ORDER BY comment_datestamp ASC"
);
if (dbrows($result) != 0) {
echo"<tr>
<td width='1%' class='tbl2' style='white-space:nowrap' valign='top'><b>Z artów:</b></td>
<td class='tbl2'>";
$i = 0;
while ($comment_data = dbarray($result)) {
$comment_message = $comment_data['comment_message'];
$comment_message = nl2br(parseubb($comment_message));
echo "<span class='small'><b>Temat artykulu:</b> <i>".$comment_data['article_subject']."</i><br>
<b>Tresc:</b> ".$comment_message."<br><b>Napisano:</b> <i>".showdate('forumdate', '$comments_data[comment_datestamp]')."</i></span><br><hr>";
}
echo"</td>
</tr>";
}
echo"
Pozdro!!
Jakoś to nie działa niestety, nic się nie dzieje.
Edytowane przez soldier175 dnia 04.01.2007 22:57:20
|
|
|
|
Sagitarius |
Dodany dnia 11.04.2007 22:13:11
|
Przedszkolak
Postów: 60 Ostrzeżeń: 1
Data rejestracji: 16.04.2006 17:11
|
mam tutaj mod, którego pasowało by przerobić.. wiąże się z tematem..
//Articles Hack
$row_max = 20; /* Number of rows to display */
$rows = dbcount("(article_id)", "articles", "article_subject='".$data['user_id']."'");
if (!isset($rowstart) || !isNum($rowstart)) $rowstart = 0;
opensidex("Articles Submitted by: ".$data['user_name'],"off");
echo "<table align='center' cellpadding='0' cellspacing='1' width='70%' class='tbl-border'>
<tr>
<td class='tbl1'>";
$userarticle = dbquery("SELECT * FROM ".$db_prefix."articles WHERE article_name='".$data['user_id']."' ORDER BY article_datestamp DESC LIMIT $rowstart,$row_max");
//tablebreak();
$articlesd = "";
while ($articles=dbarray($userarticle)) {
if ($articlesd != "") $articlesd .= "<br>";
$articlesd .= "<img src='".THEME."images/bullet.gif'> <a href='".BASEDIR."readarticle.php?article_id=".$articles['article_id']."'>".$articles['article_subject']."</a>";
}
if ($data['user_id'] != $userdata['user_id']) { $whatuser = "This user has"; } else { $whatuser = "You have"; }
if ($articlesd != "") { echo $articlesd; } else { echo "<center>".$whatuser." not posted any articles.</center>"; }
echo "</td></tr></table>";
if ($rows > $row_max) echo "<div align='center' style='margin-top:5px;'>\n".makePageNav($rowstart,$row_max,$rows,3,FUSION_SELF."?lookup=".$data['user_id']."&")."\n</div>\n";
closeside();
Niestety modyfikacja nie działa poprawnie. Czasem wyświetla arty, czasem nie.. nie wiem dlaczego.. |
|
|