Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 80% výuky zdarma!
https://www.itnetwork.cz/csharp
Avatar
fazy
Člen
Avatar
fazy:28.6.2014 17:38

Ahoj :) mám takový problém, udělal jsem si knihu návštěv. Teď jsem ale došel k názoru, že by se mi líbilo udělat možnost komentování příspěvků do knihy.. něco jako na fb když si komentujete příspěvky. Mám dvě tabulky, jedna obsahuje data z knihy návštěv a druhá komentáře. Propojeny jsou přes sloupce knihanavstev.id a komentar.komen­tar_id. to znamená, že každy příspěvek má svůj id a ten je klíčem pro zobrazení komentářů které mají komentar_id shodný s knihanavstev.id. potřebuju poradit s kódem, protože mi to u každehé příspěvku vypisuje všechny komentáře aniž by měli shodné hodnoty ID. ukázka kódu:
<?php

$hodina=time() ;
$host='localhost';
$uzivatel='root';
$heslo='';
$db=mysql_con­nect($host, $uzivatel, $heslo) or die('Nelze se připojit k serveru');
$databaze='kniha';
mysql_select_db($da­tabaze, $db) or die (mysql_error($db));
mysql_query('SET NAMES UTF8');
mysql_query('SET COLLATION_CON­NECTION=utf8_czech_ci'­);
if(isset($_POS­T['jmeno']) && isset($_POST['tex­t'])){
if(trim($_POS­T['jmeno']) !="" && trim($_POST['tex­t']) !="")
{
$jmeno=trim(html­specialchars(strip_tag­s($_POST['jme­no'])));
$prispevek=trim(htm­lspecialchars(strip_tag­s($_POST['tex­t'])));
$dotaz= 'INSERT INTO knihanavstev(jmeno, text, cas, zobrazovat) Values("'.$jme­no.'", "'.$prispevek.'", "'.Time().'", "1")';
$vysledky = mysql_query($do­taz,$db) or die(mysql_error($db));
}}
if(isset($vys­ledky))
{
echo '<div class="ok">
Váš příspěvek byl úspěšně vložen
</div>';
}
else
{
echo '<div id="err"></div>';
}

$dotaz='SELECT * FROM knihanavstev WHERE zobrazovat="1" ORDER BY cas DESC';
$vysledek=mys­ql_query($dotaz, $db);

while($zaznam=mys­ql_fetch_assoc($vys­ledek))
{
echo '<div id="kniha" >
<div class="pridal"> '.$zaznam['jme­no'].'</div>
<div class="cas">'­.date('d.m.y / H:i:s' ,$zaznam['cas'])­.'</div>
<div style="clear:bot­h"></div>

<div class="textpris­pevku">'.$zaz­nam['text'].'</div>

<div id="komentar">
<p>Vložit komentář</p>
<form action="" method="POST">
<label for="prezdivka">Přez­dívka: </label>
<input type="text" name="koment_jmeno" id="koment_jmeno" style="width:70px">

<label for="komentar">Ko­mentář: </label>
<textarea name="koment" id="koment" style="width:300px;he­ight:50px"></t­extarea>

<input type="submit" value="vložit">
</div></div>

';
$dotaz2='SELECT * FROM komentar,kniha­navstev WHERE komentar.komen­tar_id = knihanavstev.id';
$vysledek2=mys­ql_query($dotaz2, $db) or die(mysql_error($db));
while($zaznam2=mys­ql_fetch_assoc($vys­ledek2)){
echo $zaznam2['prez­divka'];
echo $zaznam2['time'];
echo $zaznam2['komen­tar'];
};
};

echo '</div>';

?>

 
Odpovědět
28.6.2014 17:38
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na fazy
KlimiCZ:28.6.2014 17:39

je tu tlačítko na kod :D

Nahoru Odpovědět
28.6.2014 17:39
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
fazy
Člen
Avatar
Odpovídá na KlimiCZ
fazy:28.6.2014 17:43

nevsiml jsem si :D

 
Nahoru Odpovědět
28.6.2014 17:43
Avatar
fazy
Člen
Avatar
fazy:28.6.2014 17:45

v tom kódu je už i zahrnutý nový formulář pro vkládání komentářů který ještě není naprogramovaný tak ať vás to nemate :)

 
Nahoru Odpovědět
28.6.2014 17:45
Avatar
Petr D
Člen
Avatar
Odpovídá na fazy
Petr D:28.6.2014 19:02

Nějak tak?

$dotaz2='SELECT * FROM komentar WHERE komentar.komentar_id = $zaznam["id"]';
 
Nahoru Odpovědět
28.6.2014 19:02
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
fazy
Člen
Avatar
fazy:29.6.2014 0:24

chyba: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '["id"]' at line 1

 
Nahoru Odpovědět
29.6.2014 0:24
Avatar
Petr D
Člen
Avatar
Odpovídá na fazy
Petr D:29.6.2014 11:49
$dotaz2='SELECT * FROM komentar WHERE komentar.komentar_id = ' . $zaznam['id'] . ';';
 
Nahoru Odpovědět
29.6.2014 11:49
Avatar
fazy
Člen
Avatar
fazy:29.6.2014 11:55

joo už to běží :) dík moc :)

 
Nahoru Odpovědět
29.6.2014 11:55
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr D
David Čápka:29.6.2014 12:43

SQL injekce.

Nahoru Odpovědět
29.6.2014 12:43
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Petr D
Člen
Avatar
Odpovídá na David Čápka
Petr D:29.6.2014 13:48

Samozřejmě. Ale tak zadání neznělo :)

 
Nahoru Odpovědět
29.6.2014 13:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.