Co pouzivate k prenaseni promennych?
Napr. kdybyste delali komentare ke clankum , tak k prenaseni ID pouzijete ....
a) sessions
b) input type="hidden"
c) neco jineho ... co?
Neberte v potaz jen komentare, ptam se obecne.
Diky
a) pouziva i b) :-)
c) = rucni rezim
b) nebo přímo v query stringu...
Doufam ze jsem to napsal jasne, na cizich forech me moc nepochopili.
Jedna se o vztah mezi hlavnim_id (CLANEK), a vedlejsimi_id(ruznymi komentari k clanku)
primarni klic - vedlejsi klice k primarnimu :)
sry ze melu o CLANCICH s komentarema..ale nic jineho me zatim nenapadlo a rozepisovat tu moji pripravovanou fotbalovou tipovacku to by bylo jeste na dyl ... ;)
diky za nazory...
Marku ..v QUERY? jak?
Třeba v kuchařce jsem to tuším tak dělal, prostě jsem napsal prisady.php?r=32, generované dynamicky, pochopitelně. To je asi to nejjednodušíí, co se dá udělat. Neviděl jsem důvod id skrývat, tak jsem to udělal takhle...
marku jasne to sem nemyslel ale tohle ;)) ... nemyslel sem to jako vypis
ja to mam taky viz ... http://pes.rjwebdesign.net a rozklikni si nakej clanek ...
ja myslel spis aby se to predalo mezi 2 tabulkama v MYSQL ty idcka...to sem mel namysli.
23k, tomu moc nerozumim.. Jak mezi dvema tabulkama? (na me musis polopaticky, chapu pomalu...)
sql tabulka clanky
sql tabukla komentare
a abys vedel k jakemu clanku patri komentare tak si musis id-cka prenaset kdyz se komentar zapise do DB ....
proto vznikl puvodni dotaz a KOMENTARE jsem uvedl jako obecny vzor.
proto jsem se ptal co pouzivate, bze ja jsem pouzival skryty inputy, ale nejak jsem zacal ted pouzivat sezeni. (prihlasovani useru je vcelku logicke)...ale pouzivam to i na tohle, i kdyz mi bylo receno ze na to neni sezeni vhodne,ale me to vyhovuje, funguje ...
23k:
Asi možná myslíš, co mám na stránkách i já. V blogu mám příspěvky, ty jsou uložený v DB a každý má své ID. Když chce někdo přidat komentář, tak se komentář vloží do zvláštní tabulky a ID příspěvku blogu tam vložím spolu s ním, takže tam jsou jakoby v tabulce komentářů potom ID dva (z toho jedno unikátní a druhý ID blogu).
Jenže toto neřeší, pokud je na stránkách více sekcí a opět se do nich přidávají komentáře. Např. ID jednoho příspěvku blogu se může shodovat s jiným ID v jiné sekci. To by byl v tabulce "komentare" pěknej bordel. Proto já třeba ještě do tabulky "komentare" mám jeden sloupec, např. "typ" a do něho zapisuju typ sekce "blog".
Petr
Sorry, stále jsem neodpověděl vlastně na tvou otázku. Já příspěvek blogu otevřu na zvláštní stránce podle nějakýho ID, kterej se přenese přes $_GET z odkazu předchozí stránky. No a pak na základě toho ID např. blogu, vyberu všechny komentáře z DB, který vyhovuj danýmu ID.
Nebo to asi furt nechápu, co chceš?
Ne petre nepochopil ;)
pastnu sem proste svoje hotovy kody abyste CHAPALI CO BYL MUJ PUVODNI ZAMER ,,snad se to vejde...
KDYZ CHCETE PRIDAT KOMENTARE ... otevre se stranka s komentari a formularem
-------------------------------------
<?
$id = $_GET['id'];
include "connect.php";
mysql_select_db("DATABAZE") or die ("nepovedlo se otevřít databázi");
$sql1 = "SELECT komentare.*, clanky.nadpis as nadpisek, clanky.autor FROM komentare, clanky WHERE clanky.id = '$id' AND komentare.id_cl = clanky.id order by ID ASC";
$sql2 = "select id, nadpis from clanky WHERE id = '$id'";
$clanek_nadpis = mysql_fetch_array(mysql_query($sql2));
$_SESSION['id_clanku_prenes'] = $clanek_nadpis['id'];
echo ' <h2 class="clanky">Komentáře k článku -' . $clanek_nadpis['nadpis']. "</h2>";
$query = mysql_query($sql1) or die (mysql_error());
while ($row = mysql_fetch_array($query))
{
$sid = $row['id']; // kvuli prekryvani s ID z CLANKU a DB koment
$datum = $row['datum'];
$jmeno = $row['jmeno'];
$vzkaz = $row['vzkaz'];
echo "<br /><table class='komentare' cellpadding=0 cellspacing=0 border=1>";
echo "<tr><td width='44px' class='zahlavi' >
<span class='formular2'>Autor:</span></td><td width='150px' class='zahlavi'>$jmeno</td><td class='zahlavi'><span class='formular2' width='150px'>Datum vložení:</span> $datum</td>
<td align='right' class='zahlavi'>[$sid]</td></tr>";
echo "<tr><td><span class='formular2'>Komentář:</span></td><td colspan='3'>$vzkaz</td></tr>";
echo "</table><br>";
}
?>
<table class='komentare2'>
<form action="index.php?kat=zpracuj_komentare" method="post">
<tr><td>Přezdívka:</td> <td><input type="text" name="jmeno"></td>
<tr><td>Vzkaz:</td> <td><textarea name="vzkaz" cols="50" rows="5"></textarea></td>
<input type="hidden" name="id_cl" value="<? echo $id ?>" />
<tr>
<td> </td>
<td><input type="submit" value="Komentuj"> <input type="reset" value="Vynuluj"></td>
</form>
</table>
----------------------------------------------
a soubor co to zpracovava
-----------------------------------------------
$id_cl = $_POST['id_cl'];
$jmeno = htmlspecialchars($_POST['jmeno']);
$vzkaz = htmlspecialchars($_POST['vzkaz']);
$datum = date("d-m-Y, H:i");
$ip = $REMOTE_ADDR;
if (!$jmeno || !$vzkaz)
{
echo "nebyly zadány všechny políčka";
}
else {
include "connect.php";
$insert_data = "insert into komentare (jmeno, vzkaz, id_cl, datum, ip) values('$jmeno', '$vzkaz',
'$id_cl', '$datum', '$ip')";
$vyber_db = mysql_select_db('rjwebdesign_net');
if (!$vyber_db)
{
echo "db nebyla vybrána - error";
exit;
}
$db_query = mysql_query($insert_data);
if ($db_query) {
$id_clanku = $_SESSION['id_clanku_prenes'];
echo "Komentář byl v pořádku přidán. Prosím vydrž, ihned tě přesměruji zpět ...";
echo "<meta http-equiv=\"refresh\" content=\"2;URL=http://pes.rjwebdesign.net/index.php?kat=komentare&id=$id_clanku\">";
}
else { "nepodarilo se";}
}
?>
NEJDE o to abys louskal kod, ale abys pochpil co ja sem mel namysli
Cili jak si predas Idcko z jedne tabulky do druhe
mam to tady pres SKRYTY INPUT ale vcera jsem si to udelal pres SESSIONS.... a funguje to , tak em napadlo co je proste LEPSI zpusob ...
a vic se k tomu uz vyjadrovat nebudu. :)
$sql2 = "select id, nadpis from clanky WHERE id = '$id'";
$clanek_nadpis = mysql_fetch_array(mysql_query($sql2));
$_SESSION['id_clanku_prenes'] = $clanek_nadpis['id'];
co toto je za blbost? Na základě id vybereš id? Dyť ho máš, tak proč vybírat? A název máš v předchozím selectu... Nechápu, asi jsem na to už starý. (-;
Myslím že na začátku jsem to pochopil správně. Tohle takypředávám přes hidden input.
Přes session to asi půjde taky, ale řekl bych, že je to kapku složitější, protože se musí někde na serveru vytvořit záznam... To se v případě hidden inputu nemusí.
A pokud je to komentář k jednomu článku, jehož id znáš, tak se pochopitelně dá předat i přes query string, jak jsem psal dřív a v php převzít přes $_GET.
Nesnaz se pochopit moje selekty :)), proste je tak mam bze vsude prenasim vsechno a mam to takovy zamotany - rozpis ligy, schvalovane zapasy, teprve predepsany zapasy ...a proste ... kdo do ty struktury nevidi, nema sanci to pochopit ;).
Jinak jsem ted dostal odpoved. Ja jsem driv pouzival hidden ale zacal sem pracovat vic se sessions (prihlasovani lidi do redakcniho systemu, hracu do webu a zadavani komentaru k zapasum ...atd) tak sem si rikal jestli nemam sezeni pouzivat vsude.
Dix :)))
Mohu potvrdit, snažit se pochopit 23k's zdrojáky je docela namáhavá práce :-)
(Nic ve zlém!)
:) nahodou , jsou docela fesny :)
k přehlednosti:
Možná by bylo lepší odsazovat spíš horizontálně než vertikálně, vertikální mezeru používat pro oddělení jednotlivých bloků kódu. Ale je to věc názoru, hlavní věc je, že se v něm vyzná tvůrce ;)
milster > jak víš, že 23k nepoužívá horizontální odsazení? Musím tě upozornit, že pokud zkopíruješ do fóra kód, který obsahuje horizontální odsazení pomocí mezer, tak se to nezobrazí, protože HTML několik mezer vedle sebe bere pořád jako jednu (což určitě víš).
ja se v tom vyznam :). Odsazuju kdyz pisu kratkej kod a kdyz mam naladu, jakmile pisu tezsi a delsi kod a nefunguje tak tam zurive pastuju a je mi pak fuk jestli to je odsazeny ;)
Tom: ty by byla vidět aspoň ta jedna, neřeš to.
"ja se v tom vyznam :)"
to je nejdůležitější :)