Autor Zpráva
WladinQ
Profil
Zdravím nevie niekto ako upraviť tento kód:

mysql_query(SELECT COUNT(post_id) FROM posts WHERE post_id = $row['id']);

a kam ho dať medzi:

<?php
        include_once("connect.php");
        $cid = $_GET['cid'];
        if (isset($_SESSION['uid'])) {
            $logged = " | <a href='create.php?cid=".$cid."' class='button'>Vytvorit temu</a>";
        } else {
            $logged = " | Na vytvorenie temy je potrebne sa <font color='#106CB5'><b>Prihlasit</b></font>!";
        }
        $sql = "SELECT id FROM categories WHERE id='".$cid."' LIMIT 1";
        $res = mysql_query($sql) or die(mysql_error());
        if (mysql_num_rows($res) == 1) {
            $sql2 = "SELECT t.id, t.topic_title, t.topic_views, t.topic_date, u.username as topic_creator FROM topics t JOIN users u ON t.topic_creator= u.id WHERE category_id='".$cid."' ORDER BY topic_reply_date DESC";
            $res2 = mysql_query($sql2) or die(mysql_error());
            if (mysql_num_rows($res2) > 0) {
                $topics .= "<table width='100%' style='border-collapse: collapse;'>";
                $topics .= "<tr><td colspan='3'><a href='index.php' class='button'>Navrat do fora</a>".$logged."<hr /></td></tr>";
                $topics .= "<tr style='background-color: #106CB5';><td>&nbsp;<font color='#FFF'>Nazov temy</font></td><td width='100' align='center'><font color='#FFF'>Odpovedi</font></td><td width='100' align='center'><font color='#FFF'>Zobrazene</font></td></tr>";
                $topic .= "<tr><td colspan='3'><hr /></td><tr>";
                while ($row = mysql_fetch_assoc($res2)) {
                    $tid = $row['id'];
                    $title = $row['topic_title'];
                    $views = $row['topic_views'];
                    $date = $row['topic_date'];
                    $creator = $row['topic_creator'];
                    $topics .= "<tr><td><a class='topic' href='view_topic.php?cid=".$cid."&tid=".$tid."'><strong><i>".$title."</i></strong></a><br /><span class='post_info'>Pridal: <font color='#106CB5'>".$creator."</font> dna <font color='#009933'>".date("d.m.Y / H:i:s", strtotime($date))."</font></span></td><td align='center'>0</td><td align='center'>".$views."x</td></tr>";
                    $topics .= "<tr><td colspan='3'><hr /></td></tr>";
                }
                $topics .= "</table>";
                echo $topics;
            } else {
                echo "<a href='index.php' class='button'>Navrat do fora</a><hr />";
                echo "<p>V tejto kategorii nie su k dispozicii ziadne temy.".$logged."</p>";
            }
        } else {
            echo "<a href='index.php' class='button'>Navrat do fora</a><hr />";
            echo "<p>Pokusate sa zobrazit kategoriu, ktora este neexistuje.";
        }
    ?>

aby mi fungoval počet pridaných odpovedí?

V databáze mám tabulky: categories, posts, topics, users

v post je id, category_id, topic_title, topic_creator, topic_last_user, topic_date, topic_reply_date a topic_views

fórum mám spísané z youtube takže neviem kam to vložiť som začiatočník za radu predom ďakujem :)
jefitto44
Profil
To je PHPBB?
WladinQ
Profil
jefitto44:
nie to je cele v php
Kubo2
Profil
WladinQ:
jefitto44 sa pýta, či to má niečo spoločné s týmto.
WladinQ
Profil
Kubo2:
myslim ze nie vravim ze som to odpisal z youtube tam robil ktosi forum a zabudol tam dat pocet odpovedi tak som skusil script

mysql_query(SELECT COUNT(post_id) FROM posts WHERE post_id = $row['id']);

len neviem kde ho dat
Kubo2
Profil
[#5] WladinQ:
Po prvé, mysql_query(" ... ");, bez úvodzoviek ti to bude hádzať chybu.
Po druhé, v dotaze zameň za {$row['id']}.
Po tretie, tento dotaz ti vždy vráti 1 vzhľadom na klauzulu WHERE v dotaze (predpokladám).
Po štvrté, kód si daj tam, kde chceš/potrebuješ získať počet príspevkov ;-)
Po piate, výsledok ktorého dotazu, resp. čo máš v $row['id']?


Nie je tebou popisovaná tabulka v [#1] náhodou topics?
WladinQ
Profil
Kubo2:
myslim ze je to topics to je zle ?
Kubo2
Profil
WladinQ:
Zle je to v tvojom príspevku :-)

Ten dotaz by som formuloval asi takto:
SELECT COUNT(`post_id`) AS `pocet_prispevkov` 
FROM `posts`
WHERE `topic_id` = id_topicu
LIMIT 1
Ak chceš zistiť počet príspevkov pre konkrétny topic. (Ten LIMIT je tam zbytočný, to je taký zlozvyk.)
WladinQ
Profil
Kubo2:
som sa opinkal v post nieje

id, category_id, topic_title, topic_creator, topic_last_user, topic_date, topic_reply_date a topic_views

toto je v topics

ale

id, category_id, topic_id, post_creator, post_content, post_date

Zapisal som to takto

mysql_query("SELECT COUNT(`post_id`) FROM `posts` WHERE `topic_id` = {$row['id']}");

a vypisuje mi to z tabulky post - topic_id

takže to mam zapísať

mysql_query("SELECT COUNT(`post_id`) AS `?` FROM `posts` WHERE `topic_id` = ?" ;
Kubo2
Profil
WladinQ:
Dobre, až na ten alias. Buď ho odtiaľ odstráň alebo ho nejako pomenuj.

Pozn. Aliasovaním sa nazýva konštrukcia meno_stlpca AS meno_aliasu.
V prípade, že alias nepoužiješ, result-set ti bude vyzerať nejak takto:
| ------------------ |
| COUNT(post_id) |
| ------------------ |
| 16                     |
| ------------------ |
S použitím aliasu sa stĺpec bude volať tak, ako si ho nazveš.
WladinQ
Profil
Kubo2:
príspevky mi uklada do posts a je tam stĺpec category_id v ktorom to ma určite id ako to spocítam koľko krát sa tam to iste id nachádza ? lebo mi to ukazuje stale topic_id a to je id toho kto to tam dal
Kubo2
Profil
WladinQ:
SELECT COUNT(category_id) as cat_posts_count FROM posts WHERE category_id = id kategórie;
Intuitívne prídeš aj na to ako to sprävne použiť.
WladinQ
Profil
Kubo2:
no neprišiel som na to :(

$odpovede = mysql_num_rows(mysql_query("SELECT COUNT(category_id) AS cat_posts_count FROM posts WHERE category_id = ?"));

ale co ma ist miesto ?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: