21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Enterthan
Profil
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
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
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
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
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
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
Jo díky a
$_SEND
je opravdu jen vyplodem mé fantazie :D (Nějak se mi to popletlo)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0