Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 7. diel - Ners - Výpis článkov v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na kivdul
Martin Kolář:16.7.2016 16:22

Cyklus je v pořádku, i když to není napsáno nejlépe, ale taky možnost :) Všimni si, že za </tr> je ukončený cyklus pomocí složené závorky, a před <tr> tento cyklus začíná.

Avatar
Jan Zamecnik
Člen
Avatar
Jan Zamecnik:10.9.2016 21:16

U výpisu článku jsem dal
$clanky = Db::queryAll('
SELECT clanky_id, url, titulek, popisek
FROM clanky
ORDER BY clanky_id DESC
');
místo SELECT *
Myslím si, že je zbytečné načítat obsah, když ho vůbec nepoužiju při výpisu článků. Pokud bude článku tísíc, tak to bude celkem zatěžovat přenos dat. Je to tak?

Editované
Avatar
Vít Vohralík:3.11.2016 18:43

Nádhera :-) Moc děkuju,

Odpovedať
Work hard, dream big.
Avatar
Peter Rumanovský:25.11.2016 15:22

Dobry den,

som zaciatocnik a ucim sa podla vasich clankov a mam problem: nejde mi vymazavat zaznam, snazil som sa pomocu googlu a vasich clankov avsak nefunguje mi to.

Vytvoril som subor zmazat.php kde je kod:

<?php

require_once('mysql.php');
require_once('Db.php');

if( isset($_GET['id']) )
{
$id = $_GET['id'];
$sql= "DELETE FROM pridavanie WHERE pridany_zaznam_id='id'";
$res= Db::query($sql) or die("Chyba".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=index.php'>";
}
?>

a v indexe odkial sa ma zaznam z tabulky vamazat mam kod (uryvok):

foreach ($akcie as $a)
{
        echo('<tr><td>' . htmlspecialchars($a['referencia']));
        echo('</td><td>' . htmlspecialchars($a['nazov_dielu']));
        echo('</td><td>' . htmlspecialchars($a['dovod_zadania']));
        echo('</td><td>' . htmlspecialchars($a['anomalie_dqi']));
        echo('</td><td>' . htmlspecialchars($a['datum_pridania']));
        echo('</td><td>' . htmlspecialchars($a['autor_id']));
        echo('</td><td>' . '<a href="zmazat.php?id='.$a['pridany_zaznam_id'].'">odstranit</a>');


        echo('</td></tr>');
}

Podotykam, ze pridavanie, zobrazovanie... vsetko funguje len pri odstraneni ma cez funkciu get prenesie na stranku s vystrahou CHYBA

Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovedá na Peter Rumanovský
Jan Bezdíček:25.11.2016 15:43

V tom SQL dotazu mas

pridany_zaznam_id='id'

Zkus cely SQL dotaz nahradit za toto:

"DELETE FROM pridavanie WHERE pridany_zaznam_id=?"

a dotaz zavolej takto:

Db::query($sql, $id)
Avatar
Odpovedá na Jan Bezdíček
Peter Rumanovský:25.11.2016 15:48

Dakujem velmi pomohlo :) nerozumiem presne preco ale idem nastudovat preco to tak spravilo :-)

Avatar
Odpovedá na Jan Bezdíček
Peter Rumanovský:25.11.2016 15:54

Este taka hlupa otazka ako mam zakomponovat respektive aky prikaz je potrebne pouzit aby po zmazani daneho riadku v tabulke presunulo cely riadok do druhej tabulky (archivacia)

Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovedá na Peter Rumanovský
Jan Bezdíček:25.11.2016 15:59

Zadny prikaz na "presun" neexistuje, takze vidim 2 reseni. Pridat do tabulky sloupec archivovano, ktery bude mit hodnoty 0 nebo 1, asi chapes co to znamena. NEBO jak chces ty, vytvorit novou tabulku a jednoduse ... nejdrive vezmes vsechny data z toho radku, ktery chces smazat (SELECT) a vlozis je do te nove tabulky (INSERT) a teprve pak smazes ten radek z puvodni tabulky (DELETE).

Osobne bych to resil tim prvnim zpusobem, kde bude archivovano 0 nebo 1.

Dejme tomu, ze jde o clanky ... vypisujes clanky, kde je pouze archivovano = 0. A kdyz nekdo chce videt archivovane clanky, zavolas ten samy dotaz jen s archivovano = 1. Je to dle me jednodussi nez hrabat do jinych tabulek.

Avatar
Peter Rumanovský:25.11.2016 16:52

Aha. A ako zadefinujem INSERT inej tabulky ze sa rovna vymazanemu zaznamu z inej tabulky? SELECT uz mam

Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovedá na Peter Rumanovský
Jan Bezdíček:25.11.2016 19:55

Pokud maji obe tabulky stejnou strukturu tak:

INSERT INTO `table2` SELECT * FROM `table1` WHERE pridany_zaznam_id=NEJAKE_ID
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 125.