Autor | Zpráva | ||
---|---|---|---|
Enterthan Profil |
#1 · Zasláno: 12. 4. 2008, 08:58:13
Mam takový problém, potřebuju udělat editaci zadaného záznamu v databázi. Vše přes _GET odkážu ID záznamu mi přijde, uložím ho od proměnné, ale když chci vybrat přes ID ten záznam, uložit ho do proměnné a z té proměnné ho vkládat do Value u text arey tak to misto toho záznamu vypíše Resource id #4 kód mam tady:
$id = $_GET['id']; $vyber=mysql_query("SELECT `administrace` FROM `administrace` WHERE `id`='$id' LIMIT 1"); <input type="text" value="<?echo "$vyber"?>" name="administrace"> Po pravdě řečeno ani nevím jestli to takto jde, ale myslím si že ano. Předem dík za odpověď protoze už jsem zoufalej :D P.S. Ty názvy tabulek jsou správně |
||
Akacko Profil |
#2 · Zasláno: 12. 4. 2008, 09:14:46
Enterthan
funkce mysql_query() ti vytáhne pole záznamů i když vytahuješ jen jeden záznam. Musíš to zpracovat ještě funkcí mysql_result(). Např. takto: $id = $_GET['id']; $vyber=mysql_result(mysql_query("SELECT `administrace` FROM `administrace` WHERE `id`='$id'"),0); LIMIT je u výběru jednoho záznamu zbytečný. |
||
Joker Profil |
#3 · Zasláno: 12. 4. 2008, 09:16:51
Enterthan
První věc: $id = $_GET['id']; není zrovna bezpečné řešení... lepší by byla nějaká kontrola, třeba jestli je ID číselné, tak: $id = intval($_GET['id']); Takhle je "nejhorší" hodnota, jakou do dotazu může někdo dostat, nula. Druhá věc, dotazy do databáze takhle nefungují. Viz například: http://www.zive.cz/default.aspx?article=118955 Nejdřív je potřeba se k databázi připojit (connect a select_db), potom poslat příkaz (query), což vrátí výsledek, a nakonec přečíst výsledek (fetch_row, fetch_array, fetch_object) |
||
Enterthan Profil |
#4 · Zasláno: 12. 4. 2008, 09:36:00
Akacko
Aha díky. No jo začátečník :D Joker Mě jde jen o to aby to zatím šlo. A dal sem sem pouze útržek kódu. Připojení na databázi a vybrání databáze mam před tímto kódem |
||
Enterthan Profil |
#5 · Zasláno: 12. 4. 2008, 10:06:31 · Upravil/a: Enterthan
Ještě tu mám druhou začátečnickou otázku ohledně toho upravení. Dostal sem se úspěšně k odeslání dat na soubor který provede UPDATE. Jenže tam mam chybu v kódu myslím si že to je absence WHERE.
Každopádně když kliknu na tlačítko upravit tak vše proběhne jak má jen to ten obsah tabulky vymaže ale zanechá ji. Kód je zde <? require_once "db.php"; $upravit = $_SEND['web']; $zmena=mysql_query("UPDATE `vlastnosti` SET `vlastnost` = '$upravit'", $spojeni); include ("smaz.php"); ?> Doufám že se nepotvrdí má domněnka, protože v takovém případě opravdu nevím jak bych do tohoto souboru dostal púvodní záznam. |
||
Akacko Profil |
#6 · Zasláno: 12. 4. 2008, 10:25:21 · Upravil/a: Akacko
Enterthan
1) co dělá toto: $_SEND? Možná že to existuje, ale nikdy jsem se s tím nikdy nesetkal a google taky mlčí. Asi bylo lepší použit třeba $_POST. 2)dotaz typu update by se neměl ukládat do proměnné, je to zbytečné. Ovšem pokud za tím nechceš mít podmínku, zda data byla změněna. <?php require_once "db.php"; $upravit = $_SEND['web']; mysql_query("UPDATE `vlastnosti` SET `vlastnost` = '$upravit'", $spojeni); include ("smaz.php"); ?> nebo <?php require_once "db.php"; $upravit = $_SEND['web']; $zmena = mysql_query("UPDATE `vlastnosti` SET `vlastnost` = '$upravit'", $spojeni); if ($zmena) { echo "zmeneno"; } else { echo "chyba"; } include ("smaz.php"); ?> A ještě něco, pro vložení PHP používej tento typ uvození <?php ... ?>, protože zkracený typ <? ... ?> není povolený na všech serverech. |
||
Enterthan Profil |
#7 · Zasláno: 13. 4. 2008, 12:24:15
Jo díky a
$_SEND |
||
Časová prodleva: 16 let
|
0