| 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