Autor | Zpráva | ||
---|---|---|---|
marek888 Profil |
Dobrý den. Už jsem mazání vyřešil, ale to mi fungovalo na jména uživatelů, takže to nebylo 100%. Chtěl bych se zeptat, jak mám napsat kód pro smazání řádku v databázi přes ID, když vím uživatelské jméno. Už jsem se koukal i do jiných vláken, a nevím co dělám špatně.
V tabulce mám id, jméno uživatele, heslo a email. Napsal jsem tento kód: nclude "./connect.php"; $nick = $_SESSION['jmeno']; $vysledek = mysql_query("SELECT FROM uzivatele WHERE id,login,heslo,email FROM login ORDER BY id"); while ($radek = mysql_fetch_array($vysledek, MYSQL_ASSOC)) { $id = $radek['id']; $jmeno = $radek['jmeno']; $heslo = $radek['heslo']; $email = $radek['email']; } $query = "DELETE FROM uzivatele WHERE id ='$id'"; $result = mysql_query($query); if($result){ session_destroy(); header("Location: index.php"); }else{ echo "Něco se nepodařilo!"; } Děkuji všem za odpovědi. |
||
quatzael Profil |
marek888:
Předpokládám, že tam máš include a ne nclude ..
Používej spíš mysqli
marek888: „WHERE id,login,heslo,email“ Tohle má fungovat jak? Nejdřív si zkontroluj, jestli Ti ten cyklus while vůbec jede.. (Mimochodem pokud Ti jde čistě o to smazání, tak je tam zbytečně)
|
||
marek888 Profil |
Ano, mám tam include, jenom jsem špatně okopíroval
quatzael: Díky, už to funguje, napsal jsem to špatně, správně to má být: $vysledek = mysql_query("SELECT id,login,heslo,email FROM uzivatele ORDER BY id"); |
||
Fisir Profil |
Reaguji na quatzaela:
„Používej spíš mysqli “
Ano, to určitě vyřeší problém. Reaguji na marka888: „ SELECT FROM uzivatele WHERE id,login,heslo,email FROM login ORDER BY id “
To asi nebude úplně správně. Víš uživatelské jméno, a chceš zjistit jeho ID: mysql_query('SELECT id FROM uzivatele WHERE login="'.mysql_real_escape_string($nick).'"'); „ while ($radek = mysql_fetch_array($vysledek, MYSQL_ASSOC)) “
Bude stačit jen: $radek = mysql_fetch_assoc($vysledek); $id , $jmeno , $heslo a $email přepisuje a smaže jen jednoho uživatele.
„ $query = "DELETE FROM uzivatele WHERE id ='$id'"; “
Předpokládám, že sloupec id je číselného typu, proto nepatří apostrofy okolo $id :
$query = 'DELETE FROM uzivatele WHERE id='.intval($id); „to mi fungovalo na jména uživatelů, takže to nebylo 100%. Chtěl bych se zeptat, jak mám napsat kód pro smazání řádku v databázi přes ID, když vím uživatelské jméno.“ Pokud to funguje takhle, mohl jsi ponechat původní kód, protože teď se jenom pomocí uživatelského jména zjistí jeho ID a podle toho se smaže příslušný řádek v databázi, což je to samé, jako kdybys mazal řádek přímo podle uživatelského jména (a bylo by to o něco rychlejší, ušetřil by se jeden SQL dotaz). |
||
marek888 Profil |
#5 · Zasláno: 1. 3. 2015, 19:16:27
Fisir:
Dobře, děkuji, tak já se na to ještě podívám a zvážím, jestli je lepší to teda mazat rovnou podle jména |
||
quatzael Profil |
#6 · Zasláno: 1. 3. 2015, 19:39:55
Fisir:
„Ano, to určitě vyřeší problém.“ To sice nevyřeší tenhle problém, ale do budoucna vyřeší jiné potenciální problémy.. |
||
Časová prodleva: 9 let
|
0