• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczytywanie kilku rekordów z bazy danych oraz dynamiczne odczytywanie danych z bazy (CHAT)

Object Storage Arubacloud
0 głosów
616 wizyt
pytanie zadane 2 marca 2018 w SQL, bazy danych przez OdsetekGlupoty Pasjonat (15,360 p.)

Witam,

Jestem widzem Pana Mirosława i ostatnio na jego kanale pojawił się odcinek 5. z serii PHP, w którym poznałem bibliotekę PDO (za co oczywiście bardzo dziękuję!). Jednak mam pewien problem z odczytem dwóch rekordów z bazy danych. Otóż stworzyłem swój własny projekt czatu. Chcę odczytać nick użytkownika umieszczającego wiadomość oraz oczywiście tekst, który został przez niego wysłany. Gdy próbuję eksperymentować z kodem, wiadomości są takie same, nie ma nicku, nie ma wiadomości i tworzą się inne anomalia PHP-owe...

Mój kod po wielu zmianach i próbach wygląda tak:

if ($wiersz = $polaczenie->query("SELECT * FROM `wiadomosci`"))
	{	
		foreach ($wiersz as $chatnickshow)
		{
			echo "{$chatnickshow['nazwa']}: ";
			
			foreach ($wiersz as $wiadomoscshow)
			{
				echo "{$wiadomoscshow['wiadomosc']}";
				echo '<br />';	
			}
		}			
	}

 

Drugą sprawą jest dynamiczne odczytywanie rekordów z bazy danych. Jak już wcześniej wspominałem tworzę kod czatu, więc dobrze byłoby, gdyby wiadomości od użytkowników były odczytywane na bieżąco. Na razie mój kod, który odczytuje dane aktywuje się dopiero wtedy, kiedy użytkownik wyśle jakąś wiadomość. Jest to problem i nawet nie mam pomysłu jak się go pozbyć.

Z góry dziękuję za wszystkie odpowiedzi i komentarze!

 

2 odpowiedzi

0 głosów
odpowiedź 2 marca 2018 przez Jedras Maniak (54,860 p.)

 Gdy próbuję eksperymentować z kodem, wiadomości są takie same, nie ma nicku, nie ma wiadomości i tworzą się inne anomalia PHP-owe...

W bazie wszystko ok?
Co do skryptu to może okazać się pomocne: http://php.net/manual/en/function.var-dump.php 

Jak już wcześniej wspominałem tworzę kod czatu, więc dobrze byłoby, gdyby wiadomości od użytkowników były odczytywane na bieżąco. 

Można rozważyć użycie socketów. 

komentarz 2 marca 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
W bazie wszystko OK. Problem jest tylko z odczytem. Link z manualem niestety nie działa...

A co do tych socketów to jakieś objaśnienie po krótcę mogę otrzymać? :)

Dziękuję za odpowiedź
0 głosów
odpowiedź 3 marca 2018 przez Ehlert Ekspert (213,030 p.)
  1. Jeśli chcesz zrobić chat działający w czasie rzeczywistym, to nie w PHP. 
  2. Wykorzystaj Node, oraz bibliotekę socket.io. Przy niewielkiej znajomości js można stworzyć chat w 200 linijkach kodu. (klient i serwer)
  3. Korzystaj z narzędzi które pozwolą Ci wyeliminować anomalie. Mówię o IDE, Xdebugu itp. 

Wiem że o tym w kursie nie było no ale cóż. Z całym szacunkiem dla kanału, ale informatyka wybiega o wiele wiele wiele dalej niż Pasja Informatyki. Im szybciej to zauważysz i zaczniesz sięgać po to dalej, tym lepiej dla Ciebie. 

1
komentarz 3 marca 2018 przez CzikaCarry Szeryf (75,340 p.)
  1. Jeśli chcesz zrobić chat działający w czasie rzeczywistym, to nie w PHP. 

Dlaczego? Co prawda inne technologie mogą się do tego lepiej nadać, ale przecież od czego są websockety o których wspomniałeś (np. implementacja  Ratchet). Jest to jak najbardziej wykonalne, język jest tylko narzędziem i nie widzę w PHP aż tak wielkich przeszkód by już koniecznie musieć przerzucać się na nową technologię / jezyk (oczywiście czasami może to wyjść na plus). Ja ogólnie jestem wielkim zwolennikiem i fanem PHP, mimo, że nie jest to najlepszy język pod względem składni, wbudowanych bibliotek, to jednak jest spoko :)

1
komentarz 3 marca 2018 przez Ehlert Ekspert (213,030 p.)
Również bardzo lubię PHP. Ale pytanie jest proste. Po co wbijać gwoździe widelcem?
1
komentarz 3 marca 2018 przez CzikaCarry Szeryf (75,340 p.)

Już od razu wbijać gwoździe widelcem, patrząc na demo ratcheta i demo socketIO to jest to bardzo podobne. Nie wiem jak tam sprawa performance'u tych dwóch bibliotek / modułów, ale i ile dobrze pamiętam to w benchmarkach PHP7 wygrywa z NodeJS (oczywiście tutaj wydajność nie powinna być przyczyną wyboru, tak tylko mówię). Tutaj raczej kwestią wyboru powinna być składnia i ogoogólnie język. Ktoś woli PHP - niech pisze w PHP, ktoś woli JS - niech pisze w JS. Aby się przekonać, należy spróbować obu. Ja już spróbowałem i wybrałem :)

komentarz 3 marca 2018 przez Ehlert Ekspert (213,030 p.)

W Twoim toku myślenia widzę poważny błąd architektoniczny. Zakładając że dysponujesz programistami "każdego kalibru", to wybieranie technologii bo ktoś coś woli jest bez sensu. Opieranie architektury jakiegoś systemu na pewnych technologiach, bo ktoś je woli to dla mnie żart i brak profesjonalizmu.

Php zgodnie ze swoją naturą jest językiem synchronicznym. Javascript i środowisko wykonywane tego języka jest asynchroniczne, jednowątkowe dzięki implementacji event loopa.  

W internecie od dłuższego czasu zdania na temat websocketów w PHP są podzielone. Jestem jednak zdania, że warto dzielić architekturę, dobierać narzędzia i rozwiązania do problemów oraz jak pisałem nie zaprzęgać krowy do rydwanu. 

komentarz 3 marca 2018 przez CzikaCarry Szeryf (75,340 p.)
Ale ja nie mówię o tym globalnie, mówię o tym z perspektywy programisty PHP (w tym przypadku o autorze pytania, jeszcze prawdopodobnie nie wybrał swojej ścieżki rozwoju, ale pyta w dziale PHP więc zakładam że jest programistą PHP), po co taki oto PHP developer ma się uczyć dodatkowo kilku innych technologii po trochu, skoro może to samo zrobić w PHP? Oczywiście mówię tu o sytuacji, gdy istnieją narzędzia na podobnym poziomie hmmm... jakby to ująć... "zaje****ści" w wielu technologiach, a nie o monopolu w "pewnej dziedzinie" typu język R. Nie neguję tutaj faktu, że w NodeJS da się napisać serwer WebSocket, po prostu w PHP też można napisać takie coś, o bardzo podobnej jakości. Dlatego tutaj przyczyną wyboru powinien być język (jego elementy, których potrzebujemy, składnia).

Podobne pytania

0 głosów
4 odpowiedzi 2,897 wizyt
pytanie zadane 8 grudnia 2017 w PHP przez kamilocl Nowicjusz (220 p.)
+1 głos
2 odpowiedzi 1,887 wizyt
0 głosów
1 odpowiedź 232 wizyt
pytanie zadane 20 listopada 2016 w PHP przez KrysztoSLU Użytkownik (690 p.)

92,698 zapytań

141,613 odpowiedzi

320,144 komentarzy

62,058 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...