Klávesnice zdarma Klávesnice zdarma
Pořádné programy s pořádnou klávesnicí zdarma. Více zde
Pouze tento týden sleva až 80 % na C# .NET

Diskuze: Mechanismus zpráv v chatu

PHP PHP Mechanismus zpráv v chatu American English version English version

Aktivity (1)
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 17:21

Ahoj,
snažím se udělat chat, ale nevím, jak zobrazovat zprávy od zdola nahoru. Protože když používám,

foreach($zpravy as $zprava)
echo($zprava['zprava']);

tak je to naopak. Pro získávání zpráv používám

$zpravy = Db::dotazVsechny('SELECT *
FROM chat
ORDER BY zprava_id DESC');
 
Odpovědět 21.6.2018 17:21
Avatar
Odpovídá na Jakub Du
Ondřej Štorc:21.6.2018 17:35

Tak použij dotaz:

$zpravy = Db::dotazVsechny('SELECT *
FROM chat
ORDER BY zprava_id ASC');
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 21.6.2018 17:35
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 18:41

A mohli by jste mi ještě poradit?
Když tam dám,

$zpravy = Db::dotazVsechny('SELECT *
FROM chat
ORDER BY zprava_id ASC LIMIT 20');

tak se zobrazí pouze prvních dvacet zpráv a další se již nepřidávají.

Editováno 21.6.2018 18:41
 
Nahoru Odpovědět 21.6.2018 18:41
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Jakub Du
Jindřich Máca:21.6.2018 18:52

To je správně. Tenhle dotaz vrátí první 20 zpráv a hotovo. Pokud chceš někam přidávat nějaké další zprávy, musíš položit další dotaz/y nebo tenhle adekvátně upravit. Vše se logicky odvíjí od toho, co to má vlastně ve výsledku dělat... :-`

 
Nahoru Odpovědět 21.6.2018 18:52
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 18:58

Špatně jsem to napsal. Potřebuji aby se zobrazilo posledních 20 zpráv.

 
Nahoru Odpovědět 21.6.2018 18:58
Avatar
Matěj Strnad:21.6.2018 19:01
$zpravy = Db::dotazVsechny('SELECT *
FROM chat
ORDER BY zprava_id DESC LIMIT 20');

Mělo by to fungovat :)

Nahoru Odpovědět  +1 21.6.2018 19:01
Ty vaše internety!
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 19:03

To jo, ale ne od zdola nahoru.

 
Nahoru Odpovědět 21.6.2018 19:03
Avatar
Odpovídá na Matěj Strnad
Andy Scheuchzer:21.6.2018 19:04

Proč sem píšeš něco, co se dá složit z původní (nechtěné) a poslední verze?

Nahoru Odpovědět 21.6.2018 19:04
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 19:09

A jak, jelikož když tam bude ASC a LIMIT 20, tak se zobrazí 20 prvních zpráv a poslední se nepřidají. Když tam bude DESC, tak se zobrazí, ale ze shora dolu. Ja potřebuji, aby se zobrazilo 20 zpráv ze zdola nahoru, tudíž aby nejnovější zprávy byly dole.

 
Nahoru Odpovědět 21.6.2018 19:09
Avatar
Odpovídá na Jakub Du
Andy Scheuchzer:21.6.2018 19:11

Na co to byla reakce? Znáš tlačítko Odpovědět?

Nahoru Odpovědět 21.6.2018 19:11
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 19:46

To byla otázka, jak to tedy udělat.

 
Nahoru Odpovědět 21.6.2018 19:46
Avatar
Odpovídá na Jakub Du
Andy Scheuchzer:21.6.2018 20:07
  1. v tom případě používej otazník
  2. nemůžeš to prostě otočit? Sice PHP moc neumím, ale určitě tam na to funkce bude. A kdyžtak to přece zvládneš sám, ne? :-)
Nahoru Odpovědět 21.6.2018 20:07
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Jakub Du
Člen
Avatar
Odpovídá na Andy Scheuchzer
Jakub Du:21.6.2018 20:08

Hledal jsem docela dlouho, ale nic jsem nenašel, proto jsem šel sem.

 
Nahoru Odpovědět  +1 21.6.2018 20:08
Avatar
Odpovídá na Jakub Du
Ondřej Štorc:21.6.2018 20:28

Promiň, ale první dotaz na google a: http://php.net/…-reverse.php

foreach($zpravy as array_reverse($zprava))
        echo($zprava['zprava']);
Nahoru Odpovědět  +1 21.6.2018 20:28
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Jakub Du
Člen
Avatar
Jakub Du:21.6.2018 21:00

Takhle mi to nefunguje, ale když udělam,

$zpravy = array_reverse($dotaz);

tak to funguje. Děkuji.

 
Nahoru Odpovědět 21.6.2018 21:00
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:22.6.2018 8:45

Spatne je, ze to primo echujes. Ukladej to do promenne, echuj na zaver. (ledaze bys chtel setrit pamet) Pak s tim muzes snadno carovat.

$str = '';
foreach ($zpravy as $zprava) $str = $str . $zprava['zprava'];
echo $str;
// ---
$str = '';
foreach ($zpravy as $zprava) $str = $zprava['zprava'] . $str; // reverzni
echo $str;

Je mozne pouzit dvojity sql dotaz

SELECT * FROM (SELECT ... LIMIT 20) x ORDER BY x.neco DESC
Editováno 22.6.2018 8:46
 
Nahoru Odpovědět 22.6.2018 8:45
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 16 zpráv z 16.