Autor Zpráva
caradoc
Profil *
Ahoj, mám problém se selektem SQL pro PHP
vytvořil jsem tabulku pro ukládání příspěvků,
vybrat všechny příspěvky není problém, ale jak zařídit aby PHP zobrazovalo data tak jak k sobě patří
tím myslím že když někdo reaguje na uživatele SLON, tak aby se to ukázalo pod příspěvkem SLONa, prostě jak to setřídit nejjednodušeji a jedním dotazem. Zkoušel jsem to příkazem v SQL IF, ale nějak jsem se nedobral dobrého konce,
stačilo by ukázat jak napsat dokaz, kde se bude třídit podle jednoho sloupce a poddotaz kde se bude třídit podle druhého sloupce,..
děkuji, Caradoc
domixx
Profil
chtělo by to vidět strukturu databáze a co přesně chceš...
ale při výběru se používají podmínky:

SELECT tabulka1.neco1, tabulka1.neco2, tabulka2.neco3 FROM tabulka1, tabulka2 WHERE tabulka1.neco1 = xyz, tabulka1.neco2 = abc
caradoc
Profil *
CREATE TABLE IF NOT EXISTS `dk_prispevky` (
`id` int(11) NOT NULL auto_increment,
`kmen` varchar(11) NOT NULL,
`vetev` varchar(11) NOT NULL,
`jmeno` varchar(25) NOT NULL,
`text` varchar(5000) NOT NULL,
`datum` datetime NOT NULL,
`query` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
)
tady je struktura a jde mi o to, za každý příspěvek má své ID, a když je to reakce na příspěvek s ID třeba 30 tak aby to SQL načítalo nejdříve podle DATUMU a poté podle VETVE a radit to za sebe, jak to tak teď pročítám na webu tak to bude asi chtít dvě tabulky a spojit je třetí,. )o:
domixx
Profil
No, moc jsem to s tím řazením nepochopil, nějak si to nedokážu představit, ale řadit se dá pomocí SELECT * FROM table WHERE podmínka ORDER BY neco1 DESC, neco2 DESC, (DESC - sestupně, ASC - vzestupně)
caradoc
Profil *
jak to napsat co nejjednodušeji
uživatel A zadá dotaz do diskuze,...
uživatel B zadá jiný dotaz do diskuze,
tyto dva dotazy se setřídí a ve výpisu z Mysql ukážou za sebou, tříděné podle data
ale pak vloží uživatel C reakci na dotaz uživatele A a to potřebuji setřídit tak aby se to ukázalo ihned po výpisu dotazu uživatele A, takto se to pak vypíše v PHP a diskuze bude přehlednější,..
nikdy jsem to nedělal, hledám cestu jak na to,.. v knížkách to nikde takto popsané není,
domixx
Profil
No, pochopil jsem, jsou to takový ty diskuze pod článkem...
Taky jsem to nikdy nedělal, ale napadá mě toto řešení (pokud to nebude strom, kterej bude postupně růst...):

Základní tabulka bude normálně s příspěvky bez reakcí. Když někdo zareaguje na určitej příspěvek, uloží se do jiné tabulky ID příspěvku na kterej někdo reagoval + text reakce. Pokud někdo zareaguje na tu reakci, tak bych to pak už řadil jenom podle data (pokud se to nebude dál větvit, to by bylo horší a to bych se asi musel víc zamyslet ;-) )
Takže schematicky:

PRISPEVEK_id1
PRISPEVEK_id2
PRISPEVEK_id3
id3_reakce1
id3_reakce2
id3_reakce3
PRISPEVEK_id4
id4_reakce1
PRISPEVEK_id5
id5_reakce1
id5_reakce2
id5_reakce3
caradoc
Profil *
zkusím to tak udělat, relace asi bude nejlepší,
dík za typ,
domixx
Profil
NZ, jen to bude funkční pro reakci jedné úrovně, pro další úroveň by to muselo být jinak, a na to už je moc hodin ;-)
caradoc
Profil *
kdbys někdy měl chvilku dlooouhou, zkus napsat SELECT pro výběr více úrovní,.. třeba 8 nebo 10, více nebude potřeba
děkuji ti
sEBa
Profil *
Nevim, jestli neodepisuji pozdě, ale co udelat v tabulce - treba "prispevky" sloupec "reakce", kdyz nekdo da nove tema tak se tam ulozi 0 a kdyz bude nekdo reagovat, tak se tam vlozi id clanku a treba nejaky prefix, to je jedno ... Pak si to v PHP skriptu u vypisu jednoduse vypises :) Neni na tom nic sloziteho, napr Pecan.cz ti nabizi zdarma paradni gbook, kde si to muzes vyzkouset, stazi zdarma - a uz dost te neplacene reklamy ;)

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: