![]() |
[php+sql] mała pomoc - Wersja do druku +- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl) +-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www) +--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych) +--- Wątek: [php+sql] mała pomoc (/thread-php-sql-mala-pomoc) |
[php+sql] mała pomoc - kancik - 25-04-2011 Witajcie . Przepraszam , że pisze ale już mózg mam wypalony od myślenia Wink Otóż piszę sobie takie coś jak przypuśćmy mamy na Facebook , że są posty na tablicy itp itd. Wszystko się ładnie wczytuję po kliknięciu w "więcej" wczytuje się więcej postów wszystko gra. Mój problem pojawia się gdy użytkownik doda jakiś post w formularzu , ponieważ nie odświeżam całej listy tylko dodaje na jej początek tego posta. Jednak wtedy po kliknięciu "więcej" ( zależności ile postów użytkownik dodał ) to te posty się dublują. Nie mam pomysłu jak to obejść. A także tego , że inni użytkownicy w tym momencie mogą coś dodać. Ewentualny kod mogę podać lub coś do tłumaczyć Smile RE: [php+sql] mała pomoc - KeeL - 25-04-2011 (25-04-2011, 16:28)kancik napisał(a): Witajcie . Przepraszam , że pisze ale już mózg mam wypalony od myślenia WinkPokaż kod. Ajax? RE: [php+sql] mała pomoc - kancik - 25-04-2011 no dobra pokaże Ci ajax ale on najmniej potrzebny bo to chodzi o pobieranie z bay danych i jakoś wykluczenie tych co dodałem. Kod PHP: // dodanie wpisu dobra pobieram to jeszcze tak Kod PHP: return $this -> db -> query("SELECT mb.id,mb.id_user,mb.body,mb.date,u.login niby mógłbym sobie pobrać datę ostatniego dodanego w "locie" wpisu i liczyć te wszystkie wpisy w tabeli do pobrania jako starsze niż ta data. Może i by to było dobrym wyjściem. A jak ktoś by tam dopisał ze znajomych posta to by się pojawiła informacja gdzieś na ekranie , że dodał i wtedy by się odświeżyła lista , żeby już za dużo kombinować. niby mógłbym sobie pobrać datę ostatniego dodanego w "locie" wpisu i liczyć te wszystkie wpisy w tabeli do pobrania jako starsze niż ta data. Może i by to było dobrym wyjściem. A jak ktoś by tam dopisał ze znajomych posta to by się pojawiła informacja gdzieś na ekranie , że dodał i wtedy by się odświeżyła lista , żeby już za dużo kombinować. RE: [php+sql] mała pomoc - Pedro84 - 25-04-2011 Mamy tak: - formularz dodawania - po dodaniu post jest dodawany na początek listy - klik => więcej - pobieranie z bazy danych. Ja bym po prostu...ukrywał, po kliknięciu na więcej, posty dodane po dodaniu posta przez użytkownika: - dodaj w set_status() jakąś klasę - przed wysłaniem ządania w funkcji microblog_get_more() po prostu usuń te elementy posiadające klasę dodwaną wyżej. RE: [php+sql] mała pomoc - kancik - 25-04-2011 Inaczej troszkę zrobiłem bo przemyślałem. Pedro84 dobrze mówisz , jednak wymyśliłem troszkę szybsze rozwiązanie. Mianowicie zrobiłem tak. Gdy użytkownik dodaje nowego posta to dodaje się to w klasie np. new_added . Następnie w js sprawdzam sobie ( podczas pobierania starszych postów ) czy istnieje taki element ( .new_added ) , jeżeli istnieje to pobieram sobie z ostatniego takiego elementu ( .new_added ukrytą datę i potem to czysta formalność. Działa po testach tak jak należy. Dzięki za pomoc ![]() RE: [php+sql] mała pomoc - Pedro84 - 25-04-2011 (25-04-2011, 17:25)kancik napisał(a): Inaczej troszkę zrobiłem bo przemyślałem. Pedro84 dobrze mówisz , jednak wymyśliłem troszkę szybsze rozwiązanie.Moim zdaniem dość toporne rozwiązanie. Czemu? Zobacz, skoro możesz sobie puścić zwykłe zapytanie, bez jakichkolwiek manipulacji - wyłączająć offset i limit - to ja poszedłbym tą drogą ![]() RE: [php+sql] mała pomoc - kancik - 25-04-2011 jeszcze jedno ![]() Kod PHP: $zapytanie = ""; ![]() users ( id , login , avatar itp itd - wymieniam tylko uzyte tu ) . microblog_entries(id_user,id,body,date), observe(first,second). już wyjaśniam. w tabelce observe first to użytkownik który zaczyna obserwować użytkownika second ![]() z poprzednimi tabelami nie trudno się domyślić o co mi chodzi ![]() Problem jest z zapytaniem które ma pokazywać wpisy tylko obserwowanych userów. Sytuacja jest taka. Uzytkownik id=3 obserwuje uzytkownika id=4. No i jestem np. zalogowany na uzytkownika 3 i ten widzi swoje posty jako zdublowane. Nie wiem dlaczego ![]() RE: [php+sql] mała pomoc - Pedro84 - 25-04-2011 Zacznijmy od tego, że tabela observe ma trochę skopane nazwy kolumn. Czemu nie dasz np: Kod: user_id => id użytkownka Generalnie, proponowałbym zmianę struktury tabel na coś takiego: Kod: microblog_entries( id, user_id, body, date) // user_id zamiast id_user Druga sprawa, to Twoje zapytanie. Kiedy masz jesteś zalogowany jako ID 3, żeby pobrać wszystkie posty użytkownika obserwowanego (w tym przypadku ID 4), robisz coś takiego: Kod: SELECT * |