Autor Zpráva
Fastman
Profil
Zdravím,

Už si vážně nevím rady, potřeboval bych poradit, jak odešlu nějakou změnu přes tlačítko "Odeslat" do databáze, data přepíše na moje zadaná.

$pripoj=MySQL_Connect($db_server, $db_login, $db_password) or Die(MySQL_Error());
MySQL_Select_Db($db_name) or Die(MySQL_Error());

$dotaz="SELECT * FROM seznam ORDER BY steamid DESC LIMIT 0, 50"; 
//vytvoření sql dotazu
$vysledek = MySQL_Query($dotaz); // provedení sql dotazu 

while ($zaznam = MySQL_Fetch_Array($vysledek)){ 
$steamid=$zaznam["steamid"];
$zaplaceno=$zaznam["zaplaceno"];
$cas=$zaznam["cas"];
$stavnastaveni=$zaznam["stavnastaveni"];

echo "<div id=\"content\">

    <table cellspacing=\"0\">
    
    <tr><th>Uživatel: <b>$steamid</b></th><th></th> ";
    
echo "  
    <tr><td>Zaplacený skin:</td><td>$zaplaceno 
    <div id=\"select\"><select name=\"zaplaceno\">
    <option value=\"zaplaceno\">zaplaceno</option>
    <option value=\"nezaplaceno\" selected=\"selected\">nezaplaceno</option>
    
     
    </tr></td>
    
    <tr><td>Datum vypršení:</td><td>$cas <br><input type=\"text\" name=\"cas\" value=\"\"></td></tr>
    
    
   
    <tr><td>Nastaveno:</td><td>$stavnastaveni
    <div id=\"select\"><select name=\"stavnastaveni\">
    <option value=\"nastaveno\">nastaveno</option>
    <option value=\"nenastaveno\" selected=\"selected\">nenastaveno</option> 
    <input type=\"submit\" value=\"Odeslat\" name=\"odeslat\" class=\"odeslat\" />
    </form>
    </td></tr>
     </form>
    </table>

</div></div>";

}
MySQL_Close($pripoj); 
    
    
}

Takhle si to představuji, že kliknu na "Nezaplaceno" a kliknu na tlačítko "Odeslat". Můj údaj se přepíše. Mám tam více uživatelů a potřebuji (na jedné stránce měnit údaje více uživatelů). Jinak tam mám normálně výpis všech uživatelů.

Děkuji za odpověď.
Tori
Profil
Chybí začáteční tag formuláře, koncový je jednou navíc. Přidejte si do formuláře skryté pole, do kterého vložíte ID uživatele. Při zpracování formuláře pak updatujete jen řádek s tímto ID.
Fastman
Profil
Fastman:

Děkuji Vám za odpověď Tori. Mám tu ale problém v databázi. Nevím proč, ale v phpmyadmin to ukazuje u každého uživatele ID "0".

Začátečním tagem myslíte tohle? <form action="<?php $PHP_SELF; ?>" method="POST">. Dále bych se chtěl zeptat, jak mám správně udělat skryté pole. Popřípadě jestli máte odkaz na nějaký návod. Děkuji.
Tori
Profil
Ano, může být i jen <form action="" method="post"> (pokud není uveden cíl, odešle se formulář na aktuální URL).
skryté pole:
echo '<input type="hidden" name="id" value="' . $zaznam['id'] . '">'; // updatováno
Nepochopila jsem, jestli máte v té tabulce dva sloupce - steamid a ID, nebo jen steamid. Každopádně by každý řádek měl mít nějaký jednoznačný identifikátor, ať už ID objednávky, číslo faktury, apod. Pokud tam jsou jen nuly, tak asi sloupec nemá nastavenou vlastnost AUTO_INCREMENT (a také by měl být na tom sloupci nastavený primární klíč).
Fastman
Profil
Mám to takhle nastavené:
v phpmyadmin:
---
id
steamid
heslo
zaplaceno
stavnastaveni
cas
---
Jinak děkuji za Vaší radu. Přidal jsem k ID vlastnost AUTO_INCREMENT a nyní mám označené všechny uživatele správným ID 1, 2, 3...

Takže, jak by to mělo být podle Vás? Spíš jak udělám to skryté pole.

Děkuji Vám za odpověď.

Jinak je všechno psaný v jednom souboru .index.php (i přihlášení a skrytý obsah - zobrazí se po přihlášení).

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: