Autor | Zpráva | ||
---|---|---|---|
lamič Profil |
ahoj, po předchozíck kladných zkušenostech tu jsem zase :-) tentokráte kvůli vkládání kometářů do článků. Narazil jsem zde na 2 problémy.. napřed bych měl tedy začít tím, že napíšu rozložení. Jedná se o dva soubory první se jmenuje zprava.php a druhy vlozit_komentar.php.
Jenoduše řečeno na stránce článek se klikne na odkaz, poté se spustí stránka vlozit_komentar.php a v tomto scriptu se do databáze uloží tento komentář(později i reakce, ale to nyní řešit nemá cenu). Nyní v čem se stal problém.. takže zatím už při vkládání do databáze se v souboru vlozit_komentare vlozi vše jak má kromě id_zpravy. (v databázi je sloupec id_zpravy je int(11). Druhý problém souvisí s tím prvním a je logický, když se do databáze neuloži id_zpravy tím pádem se komentář nemůže zobrazit k danému článku(zprávě). děkuji za případnou pomoc. Takže zde je php kod souboru vlozit_komentar.php (html znaky vynecham myslím si, že nejsou důležité) <?php include 'header.php'; ?> <?php if (isset($_GET["id_zpravy"])) { $id_zpravy=$_GET['id_zpravy']; } $zprava=""; if (isset($_POST['komentar_odeslat'])) { if (strlen($_POST['text']) == 0) { $zprava .="Nevyplnili jste text!<br>"; } else { $titulek = $_POST['titulek']; $text = $_POST['text']; } if ($zprava == '') { $sql="INSERT INTO komentare (id_uzivatele, id_zpravy, titulek, text, datum) VALUES ($_SESSION[id_uzivatele], '$id_zpravy', '$titulek', '$text', NOW())"; if ($vysledek = mysql_query("$sql")){ echo "Komentář byl přidán. <br>"; echo "<a href=\"zprava.php?id_zpravy=$id_zpravy\" class='item'>Zpět</a>"; } else { echo mysql_error(); } } else { echo $zprava; } } ?> <form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post"> zde je soubor zprava.php <?php include("header.php"); $zprava= $_POST['id_zpravy']; mysql_query("UPDATE zpravy SET precteno=precteno+1 WHERE id_zpravy=$_GET[id]"); $sql="SELECT *,DATE_FORMAT(datum,'%e.%c.%Y | %H:%i:%s') AS C_datum,e_uzivatele.nick FROM zpravy INNER JOIN e_uzivatele ON e_uzivatele.id_uzivatele = zpravy.id_uzivatele WHERE id_zpravy=$_GET[id] ORDER BY datum DESC"; if ($vysledek = mysql_query("$sql")) { while ($radek = mysql_fetch_array($vysledek)) { echo "<div class='titulek'>"; echo $radek['titulek']; echo "</div>"; echo "<div class='uvod'>"; echo $radek['uvod']; echo "</div>"; echo "<div class='text'>"; echo $radek['text']; echo "</div>"; echo "<div class='zapati'>"; echo "Datum: ".$radek['C_datum']." Autor: ".$radek['nick']." Přečteno: ".$radek['precteno']." " ; echo "<a href='index.php'>Zpět</a>"; echo "</div>"; } } echo mysql_error(); if(isset($_SESSION['id_uzivatele'])){ echo "<div style='width:250px; float:left; padding: 0px 20px 10px 27px; '><a href=\"vlozit_komentare.php?id_zpravy=$radek[id_zpravy]\" class='item'>Napsat komentář ke článku</a><br /> <br /></div>"; } ?> <?php $sql2=("SELECT komentare. * ,e_uzivatele.nick, e_uzivatele.email, DATE_FORMAT (komentare.datum,'%e.%c.%Y | %H:%i:%s')AS c_datum FROM komentare INNER JOIN e_uzivatele ON e_uzivatele.id_uzivatele = komentare.id_uzivatele INNER JOIN zpravy ON zpravy.id_zpravy = komentare.id_zpravy WHERE zpravy.id_zpravy = $_GET[id_zpravy] ORDER BY datum desc"); if ($vysledek2 = mysql_query("$sql2")) { while ($radek2 = mysql_fetch_array($vysledek2)){ echo "<br /><br /><div style='width:300px; float:left; padding: 0px 20px 5px 27px; '> <table border='2'><tr><td> <i>Napsal :</i><b>".$radek2['nick']."</b><br /><i>Datum komentáře </i>".$radek2['datum']."<br /> nadpis komentáře:<b>".$radek2['titulek']."</b> ".$radek2['text']." </table> </div>"; } } ?> <?php include("footer.php"); ?> děkuji za případnou pomoc :-) |
||
lamič Profil |
#2 · Zasláno: 30. 3. 2014, 19:34:52
lamič:
nikdo? :-( |
||
_es Profil |
#3 · Zasláno: 30. 3. 2014, 19:44:29
lamič:
Pravidla diskuse JPW a doporučení » 9. Nežádejte příliš. Hotová řešení příliš specifických či nadměrně složitých dotazů zde nedostanete. Pravidla diskuse JPW a doporučení » 8. Pokud vám nikdo neodpovídá, nesnažte se na dotaz upozorňovat přidáváním nekonstruktivních příspěvků. Skús svoj problém nejako zjednodušiť alebo predefinovať, aby bol pre radcov zaujímavejší. |
||
lamič Profil |
_es:
omlouvám se teda za porušení pravidel.. Zjednodušit? v daném kodu výše je problém s uložením komentáře na dané id_zpravy měl by to být dotaz na 22 řádku. druhá věc po úspěšném přidání do tabulky komentare sloupec id_zpravy se tyto komentáře zobrazí na stránce dané zpravy(článku). řádek 53-55. to je úplně vše. Opravdu mi nikdo neporadí? :-( |
||
okolojsoucí Profil |
#5 · Zasláno: 30. 3. 2014, 23:20:11
lamič:
$vysledek = mysql_query("$sql") UPDATE zpravy SET precteno=precteno+1 WHERE id_zpravy=$_GET[id] mysql_query S oblibou ale doporučuji nadstavbu nad těmito rozšířeními od Davida Grudla s názvem Dibi. Je velmi jednoduché a podle českého manuálu a ukázek dokážeš si dotaz napsat sám, a nejlepší je na to že tě chrání před SQL Injection. |
||
lamič Profil |
#6 · Zasláno: 31. 3. 2014, 00:18:24
okolojsoucí:
děkuji za alespon nějakou odpoved. O hlášce co píšeš nic nevím, mně to takovou hlášku nehází (nenapíše mi to nic), ale to je ted detail, zkusím tedy prostudovat to dibi, snad mi to pomůže. Zatím díky |
||
Časová prodleva: 12 let
|
0