Jsem v krizi... hledam to vsude, zkousim nejruznejsi postupy ale stále na to nemůžu dojít.
Chci načíst zpět do formuláře data z mysql, upravit si je a znovu je odeslat do databáze již změněné.
Zkouším všelijaké kody a stale mi to nefunguje.
nemate pls nekdo nejaky kod k nacteni dat z databaze do formulare?
diky
Fórum › MySQL
Načtení dat z mysql do formuláře, úprava a opětovné uložení
Pokud ti stačí teoretické řešení tak:
1) připojíš se, vybereš databazi
2) vybereš z tabulky pomocí $result=mysql_query("SELECT * FROM tb WHERE ....
3) musíš vybrat jen jeden řádek, abys mohl pouzit mysql_fetch_row() http://cz2.php.net/mysql_fetch_row
4) uděláš $row=mysql_fetch_row($result);
5) pak ti stačí <input type="text" value="<?php echo $row[DEJ_SEM_CISLO_SLOUPCE]; ?>">
6) to samé udělej u všech polích formuláře.
tak sem udělal následující:
hned za <body> jsem vložil:
<?php
include "config.php"; // connect to DB
$query = "SELECT * FROM kruzek_akce where id='19'";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
?>
dále pak formulář:
<form ACTION="edit.php" METHOD="post">
<table>
<tr><td>Datum od:<td><input TYPE="text" NAME="jmeno" SIZE="28" value="<?php echo $row['misto']; ?>" /></td></td></tr>
<tr><td><input TYPE="submit" VALUE="Uložit změny" name="edit"></td></tr>
</table>
</form>
nic mi to ale nevkládá do formuláře....
1) myslím že tam má byt $query = "SELECT * FROM kruzek_akce where id=19";
2) jestli jsem dobre pochopil fce fetch_row, tak se s tim pracuje $row[1], $row[2] apod. ale nejsem si jistej, tuhle funkci jsem snad jeste nepouzil.. :(
tak uz to zobrazuje - sem jeste zkusil pouzit neco z jineho navodu...
konecna formulace tedy:
<?php
include "config.php"; // connect to DB
mysql_query("SET NAMES utf8");
$id = $_GET['id'];
$query = "select * from kruzek_akce where id = 19";
$result = mysql_query($query);
$zaznam = mysql_fetch_array($result);
?>
a formular:
<form ACTION="edit.php" METHOD="post">
<table>
<tr><td>Datum od:<td><input TYPE="text" NAME="jmeno" SIZE="20" STYLE="border: 1px solid black;" VALUE="<?php echo $zaznam['od'] ?>"></td></td></tr>
<tr><td>Datum do:<td><input TYPE="text" NAME="jmeno" SIZE="20" STYLE="border: 1px solid black;" VALUE="<?php echo $zaznam['do'] ?>"></td></td></tr>
<tr><td>Místo:<td><input TYPE="text" NAME="email" SIZE="90" STYLE="border: 1px solid black;" VALUE="<?php echo $zaznam['misto'] ?>">
<tr><td><input TYPE="submit" VALUE="Uložit změny" name="edit" STYLE="border: 1px solid black;"></td></tr>
</table>
</form>
Jediné co nejede je první položka - nejede jen ve Firefoxu, v opeře i v IE7 jede.
Nechapu proc...
tak uz to jede i ve Firefoxu. Divné, minulý den to nejelo, ted to uz jede... Mozna cache.
Nyní bych chtěl vyřešit aktualizaci údajů v databázi. Díval jsem se tady na forech na ruzna temata s problemy při řešení UPDATE. Stejne sem to ale nerozchodil...
Soubor, kterym chci požadavek z formuláře zpracovat je tento:
<?php
include "config.php"; // connect to DB
mysql_query("SET NAMES utf8");
$od = trim($_REQUEST['od']);
$do = trim($_REQUEST['do']);
$misto = trim($_REQUEST['misto']);
$nazev_akce = trim($_REQUEST['nazev_akce']);
$co = trim($_REQUEST['co']);
mysql_query("UPDATE kruzek_akce SET od='.$od.' do='.$do.' misto='.$misto.' nazev_akce='.$nazev_akce.' co='.$co.' WHERE id=$id");
header('Location: plan_akci.php');
?>
Když vyplním formulář, tak se odešlě na stranku s tímto kodem ale udaje se neaktualizují... Nevite pls nekdo kde by mohla byt chybka?
tak kamos me s tim helfnul...
script na zpracování požadavku (edit.php) je tento:
<?php
include "config.php"; // connect to DB
mysql_query("SET NAMES utf8");
$od = $_POST["od"];
$do = $_POST["do"];
$misto = $_POST["misto"];
$nazev_akce = $_POST["nazev_akce"];
$co = $_POST["co"];
mysql_query("UPDATE kruzek_akce SET od = '".$od."', do = '".$do."', misto = '".$misto."', nazev_akce = '".$nazev_akce."', co = '".$co."' WHERE id = ".$id) or die("Nelze upravit údaje v databázi: " . mysql_error());
mysql_close($spojeni);
header('Location: plan_akci.php'); // po provedení události se vrátí na přehled akcí
?>
s tim že na te strance, kde mam formular jsem, jeste pridal hned za <body> tohle pro vynulování a nactení id pro další operace:
<?
$id = 0;
if (isset($_GET['id'])) $id = abs(intval($_GET['id']));
?>
a do formuláře tohle:
<form ACTION="edit.php?id=<?php echo $id; ?>" METHOD="post">
Funguje 100%. Jen mam nyní problém s časem - s jeho aktualizací... - tedy sloupec od a do
Jestliže upravím data ve formuláři a dám aktualizovat záznam, tak se mi v databázi přepíše čas na formát 0000-00-00.
Asi se tam někam musí implementovat tohle (to sem kdesi našel, na jakýmsi webu):
$pristup = date("Y-m-d");
je to asi na správné zformátování času do databáze. S tím si ale nevíme rady.
Nevite pls někdo prosím jak zformátovbat správně čas?? Do formuláře se zadává ve formátu 25.12.2008
Diky
Podle me se tam musi jen nejak jednoduse zadat v jakem formatu se to ma ulozit...
při vkládání záznamu do databáze také používám nějaké ošetření, aby se to vložilo správně:
$query = "insert into tabulka (do, text) values (STR_TO_DATE('$do', '%d.%m.%Y'), '$text');";
tak při UPDATE by se to preci taky melo nejak osetrit...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Úprava dat z MySQL pomocí PHP formuláře — založil frantapepa1
Opětovné načtení fce po odeslání formuláře — založil TkTz
Mysql místo select, bych chtel dát do formuláre data z jiného vyplne… — založil minolot
Načtení dat z url +uprava — založil crazyman
Moderátoři diskuze