[MySQL][PHP]Zapis rekordu z BD w wyznaczonym pliku. |
[MySQL][PHP]Zapis rekordu z BD w wyznaczonym pliku. |
5.02.2020, 03:59:51
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.01.2020 Ostrzeżenie: (0%) |
Pętla for tworzy zmienną z data na 30 dni do przodu,(np: 2020-02-05)
nastepnie porównóją tą zmienną z rekordem w BD jeśli występuje to chce go zapisac w pliku utworzonym w oparciu o date. i teraz pytanie w jaki sposob zrobic zapis tak aby zmeinne z rekordem zapisywały sie tylko w pliku z tą samą datą. Obecnie rekordy zapisują mi sie we wszytkich plikach.
PLIK: 4_main
|
|
|
5.02.2020, 10:06:18
Post
#2
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
Chyba nie do końca wiesz co w zasadzie Twój skrypt robi.
Skrypt nr 1: tworzy pliki na 10 dni do przodu zaczynając od dnia jutrzejszego i umieszczając w nich konkretny kod php. Skrypt nr 2: jest uruchamiany po odpaleniu jednego wcześniej wygenerowanych plików i pobiera w pętli rekordy z datą party_date na 30 dni do przodu, zaczynając od dnia jutrzejszego i wyświetla to co znajdzie. Jeśli chcesz, żeby skrypt działał tak jak opisałeś to masz dwa wyjścia. 1. W pierwszym skrypcie do zawartości umieszczanej w pliku należy dodać zmienną w której będzie znajdować się data na podstawie której drugi skrypt będzie pobierał dane. W drugim skrypcie natomiast należy usunąć pętle i do warunku w zapytaniu użyć zmiennej, która została umieszczona w generowanej zawartości. 2. Połączyć oba skrypty w taki sposób, aby tworzenie plików było zależne od tego, czy baza danych zwróci jakiś wynik. Jeśli tak to wygenerować docelową zawartość i zapisać do pliku. W pierwszym sposobie pliki będą tworzone niezależnie od tego, czy będą jakieś rekordy przypisane do danej daty. Dopiero konkretny plik będzie to sprawdzał i wyświetlał ewentualne wyniki. W drugim przypadku pliki będą tworzone tylko w przypadku, gdy będą jakieś rekordy przypisane do danej daty. W przypadku braku takowych plik nie zostanie utworzony. -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
5.02.2020, 20:03:33
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.01.2020 Ostrzeżenie: (0%) |
Dzięki za odpowiedź freemp3.
Wydaje mi się ze właśnie tak zrobiłem, problem tylko w tym ze rekordy z BD zapisywane sa we wszystkich plikach a nie w tym z właściwą datą. I teraz nie wiem jak zapisać to aby rekord z bazy danym był zapisywany tylko w pliku z ta samą datą. |
|
|
11.02.2020, 08:44:27
Post
#4
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
W takim razie pokaż jak wygląda kod po Twoich poprawkach, inaczej ciężko będzie stwierdzić co jest nie tak.
Ten post edytował freemp3 11.02.2020, 08:45:17 -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
11.02.2020, 09:13:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.01.2020 Ostrzeżenie: (0%) |
Udało mi się uporać z wcześniejszą trudnościa.
Teraz problem mam taki ze jak jest w BD wiecej niz jeden rekord z tą samą datą to się już nie zapisuje prawidłow. Co mogę zrobić z $club_view aby nowe rekordy były dodawane normalnie? Jakaś pętla?
|
|
|
11.02.2020, 09:33:31
Post
#6
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
Dwie pętle spokojnie wystarczą.
Po pierwsze to ten if w pętli while nie jest potrzebny, ponieważ w zapytaniu jest warunek określający, że mają zostać pobrane tylko te rekordy dla których wartość party_date jest równa wygenerowanej dacie. Po drugie generowanie zmiennej $zawartosc1 oraz zapis do pliku powinien odbywać się już po pętli while. Po trzecie zmienna $club_view, powinna być ustawiana na pustą przed pętlą while, natomiast w pętli powinieneś tylko dodawać do niej nową zawartość. Po czwarte zmień sposób tryb pliku, bo w tym momencie otwierasz tylko istniejące pliki i je czyścisz, natomiast nowe nie będą tworzone, więcej w dokumentacji funkcji fopen - parametr mode. Po piąte możesz przenieść dołączanie pliku connect.php oraz połączenie do bazy danych przed pętle for, gdyż to jest potrzebne tylko raz na początku i nie musi być wykonywane za każdym razem w pętli. PS. Polecam zapoznać się z metodą gumowej kaczuszki, w tedy łatwiej będziesz mógł dostrzec co Twój kod tak w zasadzie robi i jak to poprawić Ten post edytował freemp3 11.02.2020, 09:34:26 -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
13.02.2020, 10:06:43
Post
#7
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.01.2020 Ostrzeżenie: (0%) |
Zastosowałem się do Twoich rad i poprawiłem kod, i teraz działa jak należy,
Mam jeszcze jeden problem, dodałem tworzenie dodatkowych podstron dzięki zmiennej $plik_1a_zawartosc i w tej zminnej mam petla z datą (ta sama co wczesniej) niestety nie zapętla mi się, i nie wiem czemu? Mam jeszcze kilka drobnych pytań, jeśli masz chwile to będe wdzieczny za odp, szukałem tego ale nie moge dojsc jak to zrobic: 1.jak zrobic aby data była liczona w pętli od wczoraj?
|
|
|
13.02.2020, 12:47:57
Post
#8
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
Nie zapętla się ponieważ tworzenie zmiennej $plik_1a_zawartosc w dalszym ciągu jest w zmiennej while a powinno być za nią. W pętli while powinno być tylko generowanie listy klubów, która później zostanie dołączona do zawartości pliki. Oprócz tego po co Ci zmienna $club_view, skoro jej nie wykorzystujesz i za każdym przejściem pętli jest nadpisywana?
Co do daty to przy jej tworzeniu przed pętlą for utwórz obiekt z datą wczorajszą a nie dzisiejszą i tyle. -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
14.02.2020, 12:05:40
Post
#9
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.01.2020 Ostrzeżenie: (0%) |
Wywaliłem zmienna i poprawiłem nieco kod, już się zapętla:
1.Teraz pytanie jak zrobić tą pętle tak aby możliwe było wyświetlanie wielu rekordów z BD na ta samą date? 2.Jak najlepiej zmienic angielskie nazwy miesiaca na polskie, czy instrukacja switch bedzie optymalna czy jest cos lepszego? Z góry dzięki za odp,
|
|
|
14.02.2020, 12:55:58
Post
#10
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
1. Już chyba trzeci raz to pisze Trzeba to zrobić w pętli while i można to zrobić na dwa sposoby:
- w tej pętli while, którą masz teraz generujesz gotowy kod html odpowiadający tylko za listę i za nic poza tym, a później wstawiasz to w odpowiednim miejscu. Pamiętaj, że pętla za każdym razem nadpisuje zmienną więc trzeba użyć operatora dodawania a nie zwykłego przypisania oraz, żeby przed pętlą while ustawić zmienną na pusta, bo w przeciwnym wypadku przy kolejnym przejściu pętli for będziesz miał tam rekordy z poprzedniej daty. - przenosisz pętle while w miejsce w którym mają być wyświetlone te dane i tam generujesz listę 2.Switch tu nie jest potrzebny. Stwórz na początku skryptu tablicę z miesiącami po polsku, w której kluczami będą numery miesięcy. Później przy wyświetlaniu wyciągasz z tablicy wartość o kluczu z numerem danego miesiąca i gotowe. -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
14.02.2020, 14:30:51
Post
#11
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
I teraz nie wiem jak zapisać to aby rekord z bazy danym był zapisywany tylko w pliku z ta samą datą. jesli masz date to sprawdz to poprzez czy jest taki plik o takiej nazwie (oczywiscie musisz to sformatowac do swoich potrzeb ten format) i zapisac tylko do tego pliku -------------------- |
|
|
15.02.2020, 09:29:39
Post
#12
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.01.2020 Ostrzeżenie: (0%) |
Udało mi się uporać z tymi rekordami, choc spędziłem ładnych pare godzin aby znaleść co to jest operator dodawania na ale teraz już zapamiętam do końca życia.
Ok już ostatni temat o który Cie zapytam: Jak można najprościej zrobić aby zmienic classe diva w kalendarzu tak aby w wyświetlanym pliku był zmieniona classa na:card1 a w reszcie pętli na card2? Dzięki że tyle czasu poświęcasz na odpowiedzi.
|
|
|
17.02.2020, 12:11:35
Post
#13
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
Trzeba sprawdzić, czy data w pętli jest datą z danego pliku. Jeśli nazwa pliku jest datą, to możesz z tego skorzystać, jeśli nie to w tedy na początku pliku należy dodać zmienną, która będzie przechowywała taką informację.
-------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 04:20 |