Načtení dat z mysql do formuláře, úprava a opětovné uložení – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načtení dat z mysql do formuláře, úprava a opětovné uložení – MySQL – Fórum – Programujte.comNačtení dat z mysql do formuláře, úprava a opětovné uložení – MySQL – Fórum – Programujte.com

 

jara
~ Anonymní uživatel
25 příspěvků
12. 2. 2008   #1
-
0
-

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

Nahlásit jako SPAM
IP: 213.211.55.–
pawlik0
Grafoman
12. 2. 2008   #2
-
0
-

Asi myslíš načtení řádku do formuláře?

Nahlásit jako SPAM
IP: 84.42.152.–
Sa Nata A Na. Howgh
jara
~ Anonymní uživatel
25 příspěvků
12. 2. 2008   #3
-
0
-

ano, řádky

Nahlásit jako SPAM
IP: 213.211.55.–
Santas0
Věrný člen
12. 2. 2008   #4
-
0
-

normalne nacitas data do premennej a potom priradis napr. inputu atribut value
tj.



$data = //data z db;

echo '<input type=atd value="'.$data.'">';

Nahlásit jako SPAM
IP: 195.91.64.–
http://psandtner.sk/blog
pawlik0
Grafoman
12. 2. 2008   #5
-
0
-

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.

Nahlásit jako SPAM
IP: 84.42.152.–
Sa Nata A Na. Howgh
jara
~ Anonymní uživatel
25 příspěvků
13. 2. 2008   #6
-
0
-

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....

Nahlásit jako SPAM
IP: 213.211.55.–
jara
~ Anonymní uživatel
25 příspěvků
13. 2. 2008   #7
-
0
-

v databázi pod id=19 mám záznam

Nahlásit jako SPAM
IP: 213.211.55.–
pawlik0
Grafoman
13. 2. 2008   #8
-
0
-

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.. :(

Nahlásit jako SPAM
IP: 84.42.152.–
Sa Nata A Na. Howgh
jara
~ Anonymní uživatel
25 příspěvků
13. 2. 2008   #9
-
0
-

to ... id=19"; jsem opravil ale stále nic...

Nahlásit jako SPAM
IP: 213.211.55.–
jara
~ Anonymní uživatel
25 příspěvků
13. 2. 2008   #10
-
0
-

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...

Nahlásit jako SPAM
IP: 213.211.55.–
jara
~ Anonymní uživatel
25 příspěvků
14. 2. 2008   #11
-
0
-

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?

Nahlásit jako SPAM
IP: 213.211.55.–
pawlik0
Grafoman
15. 2. 2008   #12
-
0
-

Myslím že se parametry oddělují čárkou typu SET od='.$od.', do='.$do.', misto='.$misto.',...
btw Co chces udelat? Editaci?

Nahlásit jako SPAM
IP: 195.113.87.–
Sa Nata A Na. Howgh
Paja2
~ Moderátor
+2
Věrný člen
15. 2. 2008   #13
-
0
-

To jara :
zkus to takto:

mysql_query("UPDATE kruzek_akce SET od='$od', do='$do', misto='$misto', nazev_akce='$nazev_akce', co='$co. WHERE id='$id'") or die (mysql_error());

Nahlásit jako SPAM
IP: 88.146.215.–
jara
~ Anonymní uživatel
25 příspěvků
15. 2. 2008   #14
-
0
-

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

Nahlásit jako SPAM
IP: 213.211.55.–
jara
~ Anonymní uživatel
25 příspěvků
17. 2. 2008   #15
-
0
-

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...

Nahlásit jako SPAM
IP: 213.211.55.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý