Autor | Zpráva | ||
---|---|---|---|
Vopiatos Profil |
Ahoj mam tento kod na vypis clanku kterym zobrazuji text ve formulari a potrebuju udelat Update
zkousel jsem ruzne editace a scripty ale nerozbehl jsem to muze mi nekdo poradit dekuji. <form action="add.php"> <textarea name="text" style="width:80%"> <? require("db.php"); $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); $clanky = mysql_query("SELECT * FROM novinky"); $dotaz="select * from novinky where text='".$_GET["text"]."'"; //vytvooení sql dotazu $vysledek = MySQL_Query($dotaz); // provedení sql dotazu while($clanek = mysql_fetch_array($vysledek)){ $text=$clanek["text"]; echo '<div class="clnazev_vypis"><span style="font:bold 18px verdana;"><center>' . $clanek["nazev"] . '</center><br></span></div>'; echo "<div class='text_vypis'>".$text."</div>"; } ?> </textarea> <input type="submit" value="odeslat" /> </form> Moderátor panther: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Radek Cvek Profil |
#2 · Zasláno: 27. 1. 2011, 00:16:46 · Upravil/a: Radek Cvek
skript se musí volat add.php?id=1 apod...
<form action="add.php" method="post"> <?php if (isset($_POST["id"])) MySQL_Query("UPDATE novinky SET nazev='".$_POST["nazev"]."', text='".$_POST["text"]."' WHERE id='".$_POST["id"]."';"); require("db.php"); $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); $dotaz="select * from novinky where id='".$_GET["id"]."'"; //vytvooení sql dotazu $vysledek = MySQL_Query($dotaz); // provedení sql dotazu while($clanek = mysql_fetch_array($vysledek)){ $text=$clanek["text"]; echo '<div class="clnazev_vypis"><span style="font:bold 18px verdana;"><input type="text" name="nazev" value="' . $clanek["nazev"] . '" /><br></span></div>'; echo "<div class='text_vypis'><textarea name='text'>".$text."</textarea></div>"; echo '<input type="hidden" name="id" value="' . $_GET["id"] . '" />'; } ?> <input type="submit" value="odeslat" /> </form> |
||
Vopiatos Profil |
#3 · Zasláno: 27. 1. 2011, 17:07:38
aha a jak mam udelat add.php?id=1 zkousel jsem to a nejak mi to nejde
jinak samotnej script jsem pouzil a vlozil do edit.php. ze stranky edituj_web.php zobrazuji edit.php pod svím id asi takto <a href="edit.php?id=' . $clanek["id"] . '">Edituj</a> a zobrazi se form i s udaji pod svym id ale nejde mi to upravit porad to pise novy a novy clanky nejspis jak si tvrdil "skript se musí volat add.php?id=1 apod... " zkousel jsem zadat <form action=""add.php?id=' . $clanek["id"] . '"" method="post"> - spatna syntaxe a nevim jak z toho udelat odkaz na add.php?id=neco |
||
Vopiatos Profil |
#4 · Zasláno: 27. 1. 2011, 18:10:32
a co soubor add.php
obsahuje: <? if($text==""): echo"Jeste vyplnte text.<br><a href=index.php?p=zapsat?pm=write>Zpìt</a>"; else: require("db.php"); $conn=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); $pridejhotam = "INSERT INTO novinky VALUES ('$id', '$nazev', '$text')"; mysql_query("$pridejhotam"); mySQL_Close($conn); header ("Location: ddd.php?p=wrote&pm=write"); endif; ?> a to se mizda ze se musi upravit nebot to vklada do novinek takze mam ten script update vlozit do add.php? nebo staci prohodit misto insert .... Update .... |
||
Radek Cvek Profil |
#5 · Zasláno: 27. 1. 2011, 19:09:23
Skript add.php?id=1 zobrazí formulář, kam se načtou data z tabulky novinky - sloupce nazev a text pro id=1 - pokud se ta data ve formuláři změní a odešle se to, tak to změní i v Db .
zkousel jsem zadat <form action=""add.php?id=' . $clanek["id"] . '"" method="post"> zkus: echo '<form action="add.php?id=' . $clanek["id"] . '" method="post">'; |
||
Vopiatos Profil |
#6 · Zasláno: 28. 1. 2011, 00:58:46 · Upravil/a: Vopiatos
jsem y toho jelen.Tak od zacatku a jednodusejc.
mam soubor editace.php kde je vlozen <form action="uloz_editace.php" method="post"> <textarea name="text" style="width:80%"> <? require("db.php"); $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); $clanky = mysql_query("SELECT * FROM novinky"); $dotaz="SELECT * FROM novinky ORDER BY id DESC"; //vytvooení sql dotazu $vysledek = MySQL_Query($dotaz); // provedení sql dotazu while($clanek = mysql_fetch_array($vysledek)){ $text=$clanek["text"]; echo "$text"; } ?> </textarea> <input type="submit" value="odeslat" /> </form> Toto mi vypise do formulare obsah tabulky z DB A tento soubor uloz_editace.php Aktualizuje (updatuje) DB <? if ($text==""): echo"Jeste vyplnte text.<br><a href=index.php?p=zapsat?pm=write>Zpìt</a>"; else: require("db.php"); $conn=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); $pridejhotam = "UPDATE novinky SET text='".$_POST["text"]."' where id='".$_GET["id"]."'"; mysql_query("$pridejhotam"); mySQL_Close($conn); header ("Location: index.php?p=wrote&pm=write"); endif; ?> Update funguje jen kdyz je misto id='".$_GET["id"]."'"; id='1'"; a toto mi dela neplechu, potrebuji updatovat podle daneho id a nevim jak na to zkousel jsem $_POST i $_REQUEST ale nic se nedeje je pravda za tomuto moc nerozumim ale jsem uz skoro u konce jen to ID prosim poradte urcite je to prkotina. Jinak diky vsem a take Radku Cvekovi nakopl me spravnym smerem tak jeste jednou dik a prosim kdyz tak o pomoc s tim ID |
||
Radek Cvek Profil |
#7 · Zasláno: 28. 1. 2011, 01:55:26
připadá mi zvláštní, že se do formuláře vypisují všechny články, měl by se logicky měnit pouze jeden a znát jeho id - ani nevím jaké id předat
co se týče pouze předávání id tak z editace.php do uloz_editace.php, tak v editace.php: //nevím odkud brát to id - mělo by to být buď z databáze nebo z url //z databáze $id=$clanek["text"]; //z url $id=$_GET["text"]; <form action="uloz_editace.php" method="get"> ... <input type="hidden" name="id" value="<? echo $id; ?>" /> <input type="submit" value="odeslat" /> a v uloz_editace.php změnit $_POST["text"] na $_GET["text"] |
||
Frozen Profil |
#8 · Zasláno: 28. 1. 2011, 09:01:09
Ahoj, jestli to dobře chápu tak chceš mít možnost editace všech článků před sebou a ne jen jeden.
Musíš svému scriptu předat nějak info o tom jaké id má tvůj článek. Zkus to takhle. <form action="uloz_editace.php" method="post"> <? require("db.php"); $pripoj=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); $clanky = mysql_query("SELECT * FROM novinky"); $dotaz="SELECT * FROM novinky ORDER BY id DESC"; //vytvooení sql dotazu $vysledek = MySQL_Query($dotaz); // provedení sql dotazu while($clanek = mysql_fetch_array($vysledek)){ $text=$clanek["text"]; echo "<textarea name=\"text_".$clanek['id']."\" style=\"width:80%;\">"; // přidáš ID k postu s názvem text_ (podtržítko slouží jako rozdělovač) echo "$text"; echo "</textarea>"; //ps. pro každý článek se vytvoří textarea, jinak asi nepředáš id článku } ?> <input type="submit" value="odeslat" /> </form> A tento soubor uloz_editace.php Aktualizuje (updatuje) DB Dále musíš zjistit co se vlastně odeslalo a to updatovat. <? /* if ($text==""): echo"Jeste vyplnte text.<br><a href=index.php?p=zapsat?pm=write>Zpìt</a>"; else: */ require("db.php"); $conn=MySQL_Connect($SQL_Server, $SQL_Uzivatel, $SQL_Heslo) or Die(MySQL_Error()); MySQL_Select_Db($Databaze) or Die(MySQL_Error()); foreach ($_POST as $key => $value){ // POST je vlastně pole tak proč si s ním nepohrát ;-) $clanek_k_editaci = ereg("text_", $key); // pokud POST obsahuje "text_" if ($clanek_k_editaci){ $zjisti_id = explode("_",$key); // to je ta značka o které jsem mluvil $id = $zjisti_id[1]; $text = $value; $pridejhotam = "UPDATE novinky SET text='$text' where id='$id' "; mysql_query("$pridejhotam"); } } mySQL_Close($conn); header ("Location: index.php?p=wrote&pm=write"); //endif; ?> nevýhoda toho je, že se updatujou všechny články i když se v něm nic nezmění. Snad tam nemam chybu ;-). |
||
Vopiatos Profil |
#9 · Zasláno: 28. 1. 2011, 12:37:16
Super parada zkusil jsem ten zpusob od Radka a to je presne co jsem potreboval takže velice děkuji.
Na postup Frozena jsem se nedostal ale take dekuji. Moc jste mi pomohli Díky za toto FORUM :-) |
||
Časová prodleva: 13 let
|
0