NOVINKA: Pracuj až o 60 % rychleji díky akreditovanému kurzu Specialista na AI. Nyní již od 0 Kč. Zjisti více:

Diskuze – Lekce 7 - NERS - Výpis článků v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
M4RtY
Člen
Avatar
Odpovídá na kivdul
M4RtY: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á.

 
Odpovědět
16.7.2016 16:22
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?

Editováno 10.9.2016 21:17
 
Odpovědět
10.9.2016 21:16
Avatar
Vít Vohralík:3.11.2016 18:43

Nádhera :-) Moc děkuju,

Odpovědět
3.11.2016 18:43
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

 
Odpovědět
25.11.2016 15:22
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá 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)
 
Odpovědět
25.11.2016 15:43
Avatar
Odpovídá na Jan Bezdíček
Peter Rumanovský:25.11.2016 15:48

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

 
Odpovědět
25.11.2016 15:48
Avatar
Odpovídá 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)

 
Odpovědět
25.11.2016 15:54
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá 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.

 
Odpovědět
25.11.2016 15:59
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

 
Odpovědět
25.11.2016 16:52
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá 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
 
Odpovědět
25.11.2016 19:55
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 125.