Diskuze: Smazání jednoho řadku v databázy

PHP PHP Smazání jednoho řadku v databázy American English version English version

Avatar
cisco
Člen
Avatar
cisco:

Dobrý den
Potřeboval bych poradit od odborníků trápím se nad touto věcí a nevim si rady:

Udělal jsem si jednoduché ukládání poznámek otevřu index.php a tam vidím areu na zapsání a uložení poznámek do sql databáze.
Do databáze se uloží: čas příspěvku
text příspěvku
id příspěvku
Vše funguje v pořádku texty se mi ukládají i zobrazují jak bych chtěl a teď přichází můj problém, chtěl bych ke každému zobrazenému řádku přidat tlačítko smazat aby se poznámka dala odstranit ale nějak se mi nevede. Zobrazovací scriptik je toto:

echo ('<table border="0">');
        $vysledek=mysql_query("SELECT datum, poznamka ,id_poznamky FROM poznamky ORDER BY id_poznamky DESC");
        while ($radek=mysql_fetch_array($vysledek)):
            echo '<tr><td width="170">'.$radek['datum'];
            echo '<td>'.$radek['poznamka'];
            echo ('</td></tr>');
        endwhile;
        echo ('</table>');

Zkoušel jsem jsem ke každé řádce vložit tlačítko smazat ale nějak to nefungovalo. ;-(
Poradíte mi někdo?

Prosím nekamenujte mě :-) jestli to mám blbě napsané jsem úplný začátečník.
Děkuji

 
Odpovědět 17.10.2015 14:22
Avatar
Lu Kiss
Člen
Avatar
Odpovídá na cisco
Lu Kiss:

Pročetl jsi si návody co jsou zde? Jestli jsi začátečník, tak by ti to dost pomohlo :)

 
Nahoru Odpovědět 17.10.2015 14:27
Avatar
cisco
Člen
Avatar
cisco:

Přečetl vysim na nich už asi dva týdny podle lekcí jsem si to napsal všechno šlo OK až teď jsem se zadrhnul na tim smazáním řádku :-( a jsem úplně v koncích...

 
Nahoru Odpovědět 17.10.2015 14:50
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Jako první věc - PŘESTAŇ POUŽÍVAT mysql_query!
Pokud ovšem ponecháme mysql_query, musíš si vytvořit podmínku v soubor index.php:

if ($_GET['smazat']) {
        mysql_query('DELETE FROM poznamky WHERE id = ' . $_GET['smazat']);
}

Tlačítko, které si vytvoříš potom musí odkazovat na index.php?sma­zat=ID_POZNÁM­KY
Tedy do výpisu přidáš

echo('<td><a href="index.php?smazat=' . $radek['id'] . '"><button>Smazat</button></a></td>');
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  -3 17.10.2015 14:57
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Odpovídá na cisco
Martin Konečný (pavelco1998):

A pokud vážně chceš používat mysql_* knihovnu, udělej aspoň

if ($_GET['smazat']) {
        mysql_query('DELETE FROM poznamky WHERE id = ' . (int) $_GET['smazat']);
}
 
Nahoru Odpovědět  +2 17.10.2015 16:00
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na cisco
Marek Z.:

Rovnou to escapni, v PHP je na to vskutku snadno zapamatovatelná funkce..

http://php.net/…e-string.php

Nahoru Odpovědět 17.10.2015 19:29
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Marek Z.
Martin Konečný (pavelco1998):

neni třeba, když je to číslo, stačí přetypovat :D

 
Nahoru Odpovědět  +1 17.10.2015 19:31
Avatar
Odpovídá na Michal Vašíček
Petr Čech (czubehead):

V PHP jsem sice opravdu lama, ale nemáš to ošetřené proti SQL injekci.

Nahoru Odpovědět  +1 17.10.2015 21:51
Why so serious? -Joker
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Petr Čech (czubehead)
Michal Vašíček:

To je ta moje rozmazlenost, když celou dobu používám PDO a teď mi někdo ukáže mysql_query.

Nahoru Odpovědět  -2 17.10.2015 21:53
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
cisco
Člen
Avatar
Odpovídá na Petr Čech (czubehead)
cisco:

Ahoj ne ne nemám na tim budu teprve pracovat a hlavně si to chci zkusit co se dá všechno provést bez ošetření vstupů...

 
Nahoru Odpovědět 18.10.2015 10:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.