Преглед на топик-а с отговори към нея?

streleca_stz

Registered
Здравейте! Реших да си направя нещо като писан форум, но се появи проблем.. Проблема е, че не съм сигурен как точно трябва да изкарам автора и съдържанието на самата тема заедно с отговорите към темата..

В смисъл с 2 заявки като втората е с цикъл ли? И друго не мога да се сетя как ако например сме на втора страница от темата да се виждат другите отговори но без да се вижда написалият в темата..

Ох дано да сте ме разбрали и да можете да ми помогнете :]]
 
еми правиш си 1 заявка да показва темата и там кой я е написал и после след този код си слагаш страницирането :)
ако искаш примерен код кажи
 
офф :D
бях писал преди ама нещо не намирам.. сега ще напиша примерен код и ще едитна мнението :)
пп: използвам страницирането на @nom3r1, защото не ми се пише сега ново xd
ии още нещо - някъде преди този код си инклудни конфиг файла и сложи малко защити ако ще го използваш
PHP:
<?php
$id = (int)$_GET['id'];
$q = mysql_query("SELECT * FROM `topics` WHERE `id` = '$id'");
if(mysql_num_rows($q)==0){die("няма такава тема!");}
while($r = mysql_fetch_assoc($q)){
	?>
	<table border="1">
<tr>
<td valign="top">Автор:<?php echo$r[author]; ?></td>
<td valign="top"><?php echo$r[text]; ?><br /><hr /><small>Дата: <?php echo$r[data]; ?></small></td>
</tr>
</table>
	<?php
}
$stranici=10; //kolko otgovora na stranica
$pageNum = 1; 
if(isset($_GET['page']) && is_numeric($_GET['page'])) { $pageNum = (int)clean($_GET['page']); } 
$reds = ($pageNum - 1) * $stranici; 
mysql_query("SET NAMES utf8");
$query = " SELECT * FROM `answers` WHERE `topic_id` = '$id' ORDER BY id DESC" . " LIMIT $reds, $stranici"; 
$result = mysql_query($query); 
while ($sql = mysql_fetch_object($result)) {
?>
<table border="1">
<tr>
<td valign="top">Автор:<?php echo$sql->author; ?></td>
<td valign="top"><?php echo$sql->text; ?></td>
</tr>
</table>
<?php
}
$query = "SELECT COUNT(id) AS broi FROM `answers` WHERE `topic_id` = '$id'"; 
$result = mysql_query($query); 
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
$numrows = $row['broi']; 
$maxPage = ceil($numrows/$stranici); 
$nstranica = ''; 
for($page = 1; $page <= $maxPage; $page++) {
if ($page == $pageNum) { 
$nstranica .= " <span class=\"current\">$page</span> "; 
}
else { 
$nstranica .= "<a href=\"topic.php?id=$id&page=$page\">$page</a>"; 
}} 
if ($pageNum > 1) { 
$page = $pageNum - 1; 
$pred = "<a href=\"topic.php?id=$id&page=$page\"> « </a>"; 
} 
else { 
$pred = ' '; 
} 
if ($pageNum < $maxPage) { 
$page = $pageNum + 1; 
$sled = "<a href=\"topic.php?id=$id&page=$page\"> » </a>"; 
} 
else { 
$sled = ' '; 
}
echo "<hr /><center>".$pred.$nstranica.$sled.'</center><br />';
?>
 
Като е готов форума ти, би ли ни дал някакво демо, за да го видим, разкритикуваме и оценим, защото ми е някакси любопитно. :D
 
Амии да явно го правя правилно, защото е г/д като твоето.. :) само не мога да разбера как може да се направи ако е на 2-ра страница автора на топика и съдържанието да изчезват...
ЕДИТ: опа трябваше да си едитна горния пост.. Извинявам се за това! :oops:
 
oops забравил съм го
PHP:
<?php
$id = (int)$_GET['id'];
$q = mysql_query("SELECT * FROM `topics` WHERE `id` = '$id'");
if(mysql_num_rows($q)==0){die("няма такава тема!");}
if(!isset($_GET['page']) || $_GET['page']==1)
while($r = mysql_fetch_assoc($q)){
        ?>
        <table border="1">
<tr>
<td valign="top">Автор:<?php echo$r[author]; ?></td>
<td valign="top"><?php echo$r[text]; ?><br /><hr /><small>Дата: <?php echo$r[data]; ?></small></td>
</tr>
</table>
        <?php
}
}
$stranici=10; //kolko otgovora na stranica
$pageNum = 1; 
if(isset($_GET['page']) && is_numeric($_GET['page'])) { $pageNum = (int)clean($_GET['page']); } 
$reds = ($pageNum - 1) * $stranici; 
mysql_query("SET NAMES utf8");
$query = " SELECT * FROM `answers` WHERE `topic_id` = '$id' ORDER BY id DESC" . " LIMIT $reds, $stranici"; 
$result = mysql_query($query); 
while ($sql = mysql_fetch_object($result)) {
?>
<table border="1">
<tr>
<td valign="top">Автор:<?php echo$sql->author; ?></td>
<td valign="top"><?php echo$sql->text; ?></td>
</tr>
</table>
<?php
}
$query = "SELECT COUNT(id) AS broi FROM `answers` WHERE `topic_id` = '$id'"; 
$result = mysql_query($query); 
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
$numrows = $row['broi']; 
$maxPage = ceil($numrows/$stranici); 
$nstranica = ''; 
for($page = 1; $page <= $maxPage; $page++) {
if ($page == $pageNum) { 
$nstranica .= " <span class=\"current\">$page</span> "; 
}
else { 
$nstranica .= "<a href=\"topic.php?id=$id&page=$page\">$page</a>"; 
}} 
if ($pageNum > 1) { 
$page = $pageNum - 1; 
$pred = "<a href=\"topic.php?id=$id&page=$page\"> « </a>"; 
} 
else { 
$pred = ' '; 
} 
if ($pageNum < $maxPage) { 
$page = $pageNum + 1; 
$sled = "<a href=\"topic.php?id=$id&page=$page\"> » </a>"; 
} 
else { 
$sled = ' '; 
}
echo "<hr /><center>".$pred.$nstranica.$sled.'</center><br />';
?>
 

Back
Горе