Autor Zpráva
Whispere
Profil
Hoj,
s php začínám, ale nemohu nikde najít smazání určitého řádku z DB.

Teď o co jde:
Můj skript slouží jako ,,objednávkový list´´, pomocí formuláře zadám hodnoty a ty se mi pak uloží do DB a ty poté vypisuji.
Mám vypsáno x sloupečků a potřebuji aby tam bylo tlačítko (obrázek) (u každého řádku) a po jeho kliknutí se určitý záznam z DB smazal.
Zkoušel jsem to přes GET, ale bohužel jsem vyhořel jak na to.
Udělal jsem to, že u každého řádku je klikací obrázek, bohužel nevím jak to zprovoznit. Rvu si s tím hlavu už asi 3. den. Hledal jsem, ale asi se blbě ptám. Kdybych našel, tak bych vás neobtěžoval.

Každou radu uvítám, pokud to jde snadněji než přes GET, tak mi to vadit nebude.

Whispere
panther
Profil
Whispere:
pokud to jde snadněji než přes GET, tak mi to vadit nebude.
to je asi to nejjednodušší.

V dotazu pak bude
mysql_query ("... WHERE id = " . (int)$_GET['id'];

(int) je tam z důvodu, že předpokládám ID jako unikátní sloupec (s auto_increment nejlépe) bude číslo.
Whispere
Profil
Wau, to byla rychlost.
Nad tímto jsem také uvažoval, každopádně děkuji za ověření, že alespoň tuto část mám správně.
Pokud ten obrázek je u každého řádku (obrázek dělán jako odkaz), jak mám ten odkaz propojit s tímto? Mě se stalo, když jsem se tam snažil dáti id, tak mi to tam narvalo, vždy to poslední ID a to u všech řádků. Byl by jsi tak hodný a udělal jak má vypadat ten odkazovací obrázek / tlačítko?

Whispere
Keeehi
Profil
Whispere:
Byl by jsi tak hodný a udělal jak má vypadat ten odkazovací obrázek / tlačítko?
<a href="smazat.php?id=45"><img src="…"></a>

Mě se stalo, když jsem se tam snažil dáti id, tak mi to tam narvalo, vždy to poslední ID
V tom bude ta chyba, jak ty řádky vypisuješ? Nakopíruj sem ten tvůj script. (ne celý, jen tu část, která se stará to ten výpis)
Whispere
Profil
Je to ,,mód´´ do phpBB.

$table01 = $db->sql_query('select * from phpbb_order LIMIT 30');
    while ($row = $db->sql_fetchrow($table01)) {
        $template->assign_block_vars('order', array(
            'ID' => $row['id'],            
            'USERNAME' => $row['username'],
            'DAT' => $row['date'],                                                                     
        ));
        $delbutt = '<a href="order.php?delete='.$row['id'].'" title="Smazat"><img src="./styles/prosilver/theme/images/solved.png"></a>';     
        $template->assign_vars(array(
        'DELBUTT' => $delbutt,
        ));
    }

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
panther
Profil
Whispere:
musíš vypisovat ten odkaz v cyklu while, ne až za ním.
Whispere
Profil
Však je to ve whilu ne?
pokud myslíš $delbutt = '<a href="order.php?delete='.$row['id'].'" title="Smazat"><img src="./styles/prosilver/theme/images/solved.png"></a>';
tak to je mezi {}
panther
Profil
Whispere:
Však je to ve whilu ne?
ano, je. Přehlédl jsem, resp. spletl jsem si kulatou závorku s chlupatou na ř. 7.

Troufl bych si tvrdit, že si na řádku 10 přepisuješ pořád tu jednu hodnotu, resp. každou hodnotu přiřazuješ ke klíči "DELBUTT", takže ve výsledku je tam jen poslední hodnota (a není tam náhodou čárka navíc na konci?).
Tori
Profil
Whispere:
a nemá se DELBUTT přiřazovat metodou $template->assign_block_vars? Neznám phpBB, ale vypadá logicky, aby v šabloně byl blok s ID "order", který opakovaně vygeneruje 1 řádek tabulky, tedy i s odkazem na smazání. (Taky by celý html kód toho odkazu mohl být v šabloně a doplňovalo by se jen ID záznamu do URL).

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: