Чтение RSS каналов

Форум

Открыть Ответить

'последние комментарии' из трех таблиц

0

0
1
07.01.2010 15:56:17
Помогите плиз объеденить 3 блока в один.
Комменты для Voting, News и Files находятся в таблице Slaed_comments
А вот для модулей Album и Pages они лежат в таблицах Slaed_album_comments и Slaed_pages_comments соответственно.
Как сделать так чтобы всё было видно в одном блоке? :)

block-LastComments.php
<?php
if (!defined('BLOCK_FILE')) {
	Header("Location: ../index.php");
	exit;
}
global $prefix, $db;

$strip = 20; #обрезка текста комментария
$limit = 5; #количество комментариев (тем)
$raz_tag = "<b><i><u><s><li><tt>"; #разрешенные теги в комментарии. Набирать БЕЗ ПРОБЕЛОВ между тегами!

$result = $db->sql_query("SELECT MAX(id) AS maxid, modul, cid  FROM ".$prefix."_comment GROUP BY modul, cid ORDER BY maxid DESC LIMIT $limit ");
while (list($maxid, $modul, $cid) = $db->sql_fetchrow($result)) {
	$mmaxid[] = $maxid;

	switch($modul) {
		case "Voting":
	    $mVoting[] = "$cid";
		break;

		case "News":
		$mNews[] = "$cid";
	    break;
	    
		case "Files":
	    $mFiles[] = "$cid";
		break;
	
	}
}

//--------- News
$const = sizeof ($mNews); 
if ($const>0) {
	$sql = " SELECT sid, title FROM ".$prefix."_stories WHERE ";
	for ($i=0; $i<($const-1); $i++) {
		$sql .= " sid='".$mNews[$i]."' OR ";
	}
	$sql .= " sid='".$mNews[$const-1]."' ";
	$result = $db->sql_query($sql);
	while(list($sid, $title) = $db->sql_fetchrow($result)) $mtNews[$sid] = $title;
}


//--------- Voting
$const = sizeof ($mVoting);
if ($const>0) {
	$sql = " SELECT poll_id, poll_title FROM ".$prefix."_survey WHERE ";
	for ($i=0; $i<($const-1); $i++) {
		$sql .= " poll_id='".$mVoting[$i]."' OR ";
	}
	$sql .= " poll_id='".$mVoting[$const-1]."' ";
	$result = $db->sql_query($sql);
	while(list($sid, $title) = $db->sql_fetchrow($result)) $mtVoting[$sid] = $title;
}

//--------- Files
$const = sizeof ($mFiles);
if ($const>0) {
	$sql = " SELECT lid, title FROM ".$prefix."_files WHERE ";
	for ($i=0; $i<($const-1); $i++) {
		$sql .= " lid='".$mFiles[$i]."' OR ";
	}
	$sql .= " lid='".$mFiles[$const-1]."' ";
	$result = $db->sql_query($sql);
	while(list($sid, $title) = $db->sql_fetchrow($result)) $mtFiles[$sid] = $title;
}
//---------- Сам блок
$sql = " SELECT cid, modul, date, name, comment FROM ".$prefix."_comment WHERE ";
for ($i=0; $i<($limit-1); $i++) {
	$sql .= " id='".$mmaxid[$i]."' OR ";
}
	$sql .= " id='".$mmaxid[$limit-1]."' ORDER BY id DESC ";

$i=0;
$result = $db->sql_query($sql);
while(list($cid, $modul, $date, $name, $comment) = $db->sql_fetchrow($result)) {
$i++;

$comment = preg_replace("#\[quote\](.*?)\[/quote\]#si","",$comment);
$comment = preg_replace("#\[php\](.*?)\[/php\]#si","",$comment);
$comment = preg_replace("#\[code\](.*?)\[/code\]#si","",$comment);
$comment = preg_replace("#\[hide\](.*?)\[/hide\]#si","",$comment);
$comment = cutstr(strip_tags(($comment), $raz_tag), $strip);
$date = formatTimestamp($date);

switch($modul) {
	case "Voting":
    $link = "<a href=\"index.php?name=Voting&op=poll_result&poll_id=$cid\" title=\"".$mtVoting[$cid]."\">";
    break;

	case "News":
    $link = "<a href=\"index.php?name=News&file=article&sid=$cid\" title=\"".$mtNews[$cid]."\">";
    break;
	
	case "Files":
    $link = "<a href=\"index.php?name=Files&op=view_file&lid=$cid\" title=\"".$mtFiles[$cid]."\">";
	break;

}

$content .= "
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
	<tr style=\"padding-top: 7px;\">
		<td style=\"padding-right: 5px;\">"."$link"."<img src=\"images/blocks/$modul.gif\" border=\"0\"></a></td>
		<td width=\"100%\"><b>$name</b> $date</td>
	</tr>
	<tr>
		<td colspan=\"2\">"."$link"."$comment</a></td>
	</tr>";
if ($i!=$limit) {$content .= "<tr><td colspan=\"2\"><hr width=\"90%\"></td></tr>";}
$content .= "</table>";
}


?>




block-Album_comments.php
<?php
if (!defined('BLOCK_FILE')) {
	Header("Location: ../index.php");
	exit;
}

global $prefix, $db;
$i = 1;
$result = $db->sql_query("SELECT pid,comment,name FROM ".$prefix."_album_comments ORDER BY cid DESC LIMIT 20");
while($data = $db->sql_fetchrow($result)) {
	$content .= "
	<table>
	<tr>
	 <td width=\"15px\" class=\"bgcolor1\" align=\"center\">".$i++."</td> 
	 <td width=\"100%\" class=\"bgcolor1\"><a href=\"albumpic-".$data['pid'].".html\" title=\"albumpic-".$data['pid'].".html\">".substr($data['comment'],0,18)."...</a></td>
	</tr></table>";
}
?>




block-Pages_comments.php
<?php
if (!defined('BLOCK_FILE')) {
	Header("Location: ../index.php");
	exit;
}

global $prefix, $db;
$i = 1;
$result = $db->sql_query("SELECT pid,comment,name FROM ".$prefix."_pages_comments ORDER BY tid DESC LIMIT 10");
while($data = $db->sql_fetchrow($result)) {
	$content .= "
	<table>
	<tr>
	 <td width=\"15px\" class=\"bgcolor1\" align=\"center\">".$i++."</td> 
	 <td width=\"100%\" class=\"bgcolor1\"><a href=\"pagestop-".$data['pid'].".html\" title=\"pagestop-".$data['pid'].".html\">".substr($data['comment'],0,18)."...</a></td>
	</tr></table>";
}
?>



SLAED CMS: 2 Lite
PHP: 5.2.9
2.33

2.33
2
27.02.2010 00:10:24
этож сколько запросов в базу будет....эм....а база не будет бедной после таких нажатий 100 одновременно?
4.11

4.11
3
27.02.2010 00:22:45
У него кластер с sql!
4

4
4
27.02.2010 11:45:26
это башорг что ли?
2.33

2.33
Открыть Ответить
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь