NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jiří REMAR
Člen
Avatar
Jiří REMAR:17.10.2015 14:22

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 Jiří REMAR
Lu Kiss:17.10.2015 14:27

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
Jiří REMAR
Člen
Avatar
Jiří REMAR:17.10.2015 14:50

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

Člen
Avatar
:17.10.2015 14:57

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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
17.10.2015 14:57
Avatar
Odpovídá na Jiří REMAR
Martin Konečný (pavelco1998):17.10.2015 16:00

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
17.10.2015 16:00
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Jiří REMAR
Uživatel sítě :17.10.2015 19:29

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 Uživatel sítě
Martin Konečný (pavelco1998):17.10.2015 19:31

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

Nahoru Odpovědět
17.10.2015 19:31
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na
Petr Čech:17.10.2015 21:51

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

Nahoru Odpovědět
17.10.2015 21:51
the cake is a lie
Avatar

Člen
Avatar
Odpovídá na Petr Čech
:17.10.2015 21:53

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
17.10.2015 21:53
Avatar
Jiří REMAR
Člen
Avatar
Odpovídá na Petr Čech
Jiří REMAR:18.10.2015 10:44

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.