Diskuze: Příspěvky a odpovědi
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 24 zpráv z 24.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Ta intval ošetřuje vstup ? Zkus se jinak podívat po novém ovladači, mysql je starý - zkus např. PDO. Je objektový a pracuje se s ním mnohem lépe.
K SQL - podle mě ti chybí AS (alias) (snad se nepletu) tj
SELECT us.id,uz.parent,us.nick,us.text
FROM forum_prispevky AS us
LEFT JOIN forum_prispevky AS uz ON us.id = uz.parent
WHERE us.id_fora
Každopádně ti aliasy jsou hodně divné a matoucí.
aliasem to není, ale chová se to stejně sním i bez něj. Jak to mám to vypisuje vše, ale je tam špatné seřazení
Přesně tak. To je podmínka které příspěvky se mají pro vlákno zobrazovat. Teď mi tam chybí jen dodat reakce. Něco jako je tady, ale reakce chci u sebe zmenšit a dát třeba doprostřed. Víc je zviditelnit. Taková klasika, ale nevím jak to mám docílit. Můžu do while vkládat další dotazy s podmínkou a tak toho docílit, ale byla by to prasárna a potom stránkování by bylo také mimo kontrolu. To by se taky dalo vyřešit dalšíma prasárnama, ale to by byl jeden hnus za druhým a toho se chci vyhnout. Proto se snažím toho docílit skrz Join, ale jak je jasné se mi moc nedaří.
na zoradenie sa pouziva https://dev.mysql.com/…ng-rows.html
napisal by som aj priklad ale som na tablete
Bez toho aniž bychom věděli co je v těch proměných $start a $zobrazení těžko poradíme. A ještě jednou, ta funkce intval ošetřuje vstup ? Pokud ne, máš tam SQL injekce
Popiš víc problém a možná někdo poradí.
V adrese mám například id=1 a podle toho vypisuji příspěvky pro zvolené téma. Start, zobrazit je jen pro stránkování.
Tobě asi není moc pomoci. Ještě jednou, funkce intval dělá co ? Ošetřuje nebo ne vstup ? No a co v těch proměnných je ? Až se vyjádříš lépe a srozumitelně, možná dokážeme poradit
intval ošetřuje vstup z url adresy (nevím jak jinak to napsat). Pomocí toho si vypíšou jen příspěvky daného témata. $start a $zobrazit si myslím není vůbec třeba komentovat a pokud to odvádí pozornost, tak na to zapomeňte páč na sestavení dotazu Limit nemá vliv.
Tabulka se jmenuje: forum_prispevky
a ta obsahuje: id, id_fora, parent, nick, text, datum
id = autoincrement
parent = do parentu se vkladá id(autoincrement) příspěvku. Proto se parent
porovnává s id. Nevím co píšu nesrozumitelně. Já se na to koukal umyslně
cizíma očima a nějak mi je jasné proč tam mám ošetřený vstup z adresy a
k čemu nejspíše slouží.
intval je nativna php funkcia http://cz2.php.net/intval pouziva ju asi na 'osetrenie' sql injekcie
intval co já vím sql injekci odbourává. Přeci jenom to převádí na čísla
CREATE TABLE IF NOT EXISTS `forum_prispevky` (
`id` bigint(12) NOT NULL AUTO_INCREMENT,
`id_fora` bigint(12) NOT NULL,
`parent` bigint(12) NOT NULL,
`nick` varchar(55) COLLATE utf8_czech_ci NOT NULL,
`text` text COLLATE utf8_czech_ci NOT NULL,
`ip` varchar(55) COLLATE utf8_czech_ci NOT NULL,
`datum` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=8 ;
--
-- Vypisuji data pro tabulku `forum_prispevky`
--
INSERT INTO `forum_prispevky` (`id`, `id_fora`, `parent`, `nick`, `text`, `ip`, `datum`) VALUES
(1, 1, 0, '32', 'Test tématu', '127.0.0.1', '2014-03-07 11:21:06'),
(2, 1, 0, '32', 'ahoj', '127.0.0.1', '2014-03-08 09:15:03'),
(3, 1, 0, '19', 'hi :7:', '127.0.0.1', '2014-03-08 09:24:49'),
(4, 1, 2, '32', 'hi :7:', '127.0.0.1', '2014-03-08 09:25:33'),
(5, 2, 0, '19', 'Testy :14:', '127.0.0.1', '2014-03-10 11:29:34'),
(6, 3, 0, '19', 'ahojky', '127.0.0.1', '2014-03-11 00:09:06'),
(7, 3, 0, '19', 'ty jsi frajer', '127.0.0.1', '2014-03-11 07:46:14');
Prošel jsem si diskusi a nějak si nejsem jistý, co přesně máš za problém (kromě toho co se tu řeší mimo).
Tvůj problém je jen v tom, že máš ty příspěvky (záznamy) špatně
seřazené?
Jestli ano, přidej nějaké řazení podle data přidání (ORDER BY datum
DESC) příspěvku a je to.
Jestli máš jiný problém, měl bys ho lépe popsat a dát nám vědět, co
to dělá a nedělá
Order by pomůže, ale nevím jak mu mám dát aby to seřazoval správně. Tím myslím aby se jako první zobrazil příspěvek a pak teprve reakce na něj. Ale asi na to zapomeňte. Bez urážky, ale myslím si, že na to přijdu dřív než to tady detailně popisovat a kdo ví co ještě by sem ještě řešil. Takhle budu řešit jen kod a k výsledku se dopracuji snáz. Děkuji za váš čas
ok ak som spravne pochopil tak tu to mas http://sqlfiddle.com/#…
rozhodne sa nauc pouzivat PDO.. je to ovela bezpecnejsie + oprav si
intval($_GET["id"])
na to aby to osetrovalo naozaj sql injekciu tak ako sa ma.. pretoze predpokladam ze taketo neporiadne funkcie budu pouzivane aj ine v kode
PS: kus som si pomenil insertovane data tak aby som lepsie videl dedenie tych
potomkov
PS2: niesom SQL guru mozno to bude zle neoptimalne a podobne ale funguje to..
kazdopadne si necham poradit aj ja, urcite nieco podobne v buducnosti budem
robit
Stránka mi vyhazuje 404. Troufnu si říct, že tohle je věc, kterou jednou
bude řešit nebo dělat každý kdo dělá stránky
ok tak to robi nejaky blby regularny vyraz na linky ... pridam to cez skracovac URL
http://tinyurl.com/pqglhxj
Spíš se to tady na něco převádí. Nevadí asi to nedokážu udělat, ale
třeba něco šikovného najdu i já
Jak jste to udělal? Tohle je přesně ono. Jen nevím jak mám teď rozlišit aby sem ty reakce mohl centrovat nebo jinak rozlišit třeba barvou a podobně.
Rozhodne to bude zlozitejsi kod, bohuzial nemam cas ho teraz pisat ale ak uz
budes mat nieco napisane ty urcite sa tu najde niekto kto ti poradi, ale pisat
cely kod tu asi nik nebude
Zdarec,
potřeboval bych poradit s následujícím projektem: podle knihy Programujeme
vlastní sociální síť jsem vytvořil jejich Dinoweb, ve kterém mám v
adresáři registry mysql databázi s názvem mysqldb.class. Problém je v tom,
že když zadám localhost/dinoweb/index.php, napíše mi to následující
problém:
Warning: mysqli::mysqli(): (HY000/1049): Unknown database in C:\xampp\htdocs\dinoweb\registry\mysqldb.class.php on line 78
Warning: Mysqldb::newConnection(): Couldn't fetch mysqli in C:\xampp\htdocs\dinoweb\registry\mysqldb.class.php on line 82
Fatal error: Chyba při pokusu o připojení k databázi. in C:\xampp\htdocs\dinoweb\registry\mysqldb.class.php on line 82
Nemám náhodou databázi MYSQLDB nahrát do PHPadminu na localhost/xampp? Ale i tak mi to nejde.
Používám aplikaci XAMPP a jsem naprostý začátečník, takže byl bych komukoliv vděčen za radu.
Zobrazeno 24 zpráv z 24.