Autor Zpráva
Quish
Profil *
Snažím se vytvořit systém pro správu zakázek. Údaje zadané do formulářu se ukladají a následně vypisují, to funguje bezvadně. Ale potřebuji editovat právě ty vypsané údaje a rád bych toto všechno prováděl na jedné stránce. Podařilo se mi docilít toho, že když jsem ručně zadal jaké id se má změnit, tak se změnilo, ale potřebuji, aby si tlačítko Vložit samo zjistilo, který řádek má editovat (tlačítko Smazat to dělá). Ukázka - ty php errory nemají vliv, jsem na novém hostingu a ještě jsem neměl čas to upravit.
Celý kód,
problemové části kódu:
editace a smazání řádku (mazání funguje, přidavám jen pro ilustraci)
echo '<input type="submit" value="Vložit" name="upravit">';
            echo "<a href='index.php?del=ok&amp;id=".$row["id"]."'>SMAZAT</a>";

kód na který se odvoláva tlačítko Vložit
<?php
include 'config.php'; //načteme soubor s údaji pro připojení k db
            mysql_connect($dbserver, $dblogin, $dbheslo); // připojíme se k db
            mysql_select_db($dbnazev); // vybereme db 
            mysql_query("SET NAMES 'cp1250'"); // nastavíme kódování 
//když odešleme formulář následující script data uloží to tabulky v databázi
if(isset($_POST['upravit']))
{
        $cislo = htmlspecialchars($_POST['cislo']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $zakaznik = htmlspecialchars($_POST['zakaznik']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $nazev = htmlspecialchars($_POST['nazev']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $popis = htmlspecialchars($_POST['popis']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $datum = htmlspecialchars($_POST['datum']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $doprava = htmlspecialchars($_POST['doprava']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $tisk = htmlspecialchars($_POST['tisk']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $baleni = htmlspecialchars($_POST['baleni']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $fakturace = htmlspecialchars($_POST['fakturace']); //při odeslání příspěvku se nebezpečné znaky změní na entity
        $vloz ="UPDATE zakazky set cislo='".$cislo."', zakaznik='".$zakaznik."', nazev='".$nazev."', popis='".$popis."', datum='".$datum."', doprava='".$doprava."', tisk='".$tisk."', baleni='".$baleni."', fakturace='".$fakturace."' where id='9';";
        $result=mysql_query($vloz);
       //a přesměrujeme na zobrazení článků
        echo '<script type="text/javascript" for="window" event="onLoad()">
        <!--
            window.location.href="index.php?edit=ok"
        // --> </script>';    
}
$edit = htmlspecialchars($_GET['edit']);
if($edit == "ok")
    { echo '<b>Údaje byly upraveny</b>'; } // vypíšeme úspěšnost 
mysql_close(); //odpojíme se z db
?>
Jak je vidět, tak všechny tlačítka v současné době editují jenom záznam s id 9, zkoušel jsem dát na místé where id="x" všechno možné, bohužel mi nic nefungovalo.
Budu rád za každou radu co mi pomůže konečne dokončit tento projekt.
jenikkozak
Profil
Quish:
Do těch formulářů na editaci příspěvků vložte skrytý input, který bude obsahovat id daného příspěvku:
echo "<input type=\"hidden\" name=\"id_prispevku\" value=\"".$row['id']."\">";

Dotaz na databázi, který příspěvky upravuje, změňte určením id příspěvku, který byl odeslán:
$vloz ="UPDATE zakazky set cislo='".$cislo."', [...] fakturace='".$fakturace."' where id='".(int) $_POST["id_prispevku"]."'";
Rellik
Profil
Myslím že ze stránek ze kterých jsi čerpal najdeš i odpověď... Je to pořád stejné, jen tam máš víc položek...
navíc v tomto kódu máš na řádku 18 pevně nastavenou úpravu řádku s ID 9. Navíc tam máš za tím id='9'; navíc ten středník.
$vloz ="UPDATE zakazky set cislo='".$cislo."', zakaznik='".$zakaznik."', nazev='".$nazev."', popis='".$popis."', datum='".$datum."', doprava='".$doprava."', tisk='".$tisk."', baleni='".$baleni."', fakturace='".$fakturace."' where id='9';";

třeba proto to nefunguje jak má...
To tlačítko na úpravu udělej stejně jako je to mazání a nemusíš řešit skryté inputy..
bude to např tak:
echo "<a href='edit.php?id=".$row["id"]."'>EDITOVAT</a>";

nebo
echo "<a href='index.php?page=edit&amp;id=".$row["id"]."'>EDITOVAT</a>";


http://firstpage.rellik.eu/?page=edit_sql
Quish
Profil *
Moc dekuji vsem za odpovedi. Pouzil jsem reseni Jenika Kozaka, ktere funguje presne tak, jak jsem potreboval. Jeste jednou dekuji.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0