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

question-closed Cykliczne wyciąganie danych z bazy do zmiennych sesyjnych

Object Storage Arubacloud
0 głosów
158 wizyt
pytanie zadane 15 grudnia 2016 w JavaScript przez skrzatjedyny Gaduła (3,150 p.)
zamknięte 15 grudnia 2016 przez skrzatjedyny

Witam, probuje wyciagnac kilka rekordow z bazy do zmiennych sesyjnych. Niestety ten kod: 

if($result = $db_connect -> query("SELECT * FROM wydarzenia INNER JOIN uzytkownicy ON wydarzenia.kto_dodal = uzytkownicy.ID_uzytkownika WHERE wydarzenia.ID_klasy = '$ID_klasy'"))
                            {
                                $_SESSION['ile_wydarzen'] = mysqli_num_rows($result);
                                
                                $wydarzenie = mysqli_fetch_array($result);
                                
                                for($i = 0; $i < $_SESSION['ile_wydarzen']; $i++)
                                {
                                    $_SESSION['nazwa_wydarzenia'][$i] = $wydarzenie['nazwa_wydarzenia'];
                                    $_SESSION['kto_dodal'][$i] = $wydarzenie['login'];
                                    $_SESSION['data_wydarzenia'][$i] = $wydarzenie['data_wydarzenia'];
                                    $_SESSION['opis_wydarzenia'][$i] = $wydarzenie['opis_wydarzenia'];
                                    $ID_przedmiotu[$i] = $wydarzenie['ID_przedmiotu'];

                                    if($result = $db_connect -> query("SELECT * FROM przedmioty WHERE ID_przedmiotu = '$ID_przedmiotu'"))
                                    {
                                        $_SESSION['nazwa_przedmiotu'][$i] = $przedmiot['nazwa_przedmiotu'];
                                    }
                                }
                            }

umieszcza do kazdej "szufladki" ta sama zawartosc. (w sensie $_SESSION[...][0] jest takie same jak $_SESSION[...][1]). Ktos wie dlaczego tak sie dzieje? Ewentualnie jakis inny sposob, zeby np co sekunde wyciagac te dane z bazy i wyswietlac w innym pliku?
EDIT: zapytanie do bazy danych w phpmyadmin normalnie wyswietla wszystkie rekordy, ktore powinny sie wystwietlic

komentarz zamknięcia: blad w innym miejscu ;)

1 odpowiedź

0 głosów
odpowiedź 15 grudnia 2016 przez operator Stary wyjadacz (10,920 p.)
W poniższych zmiennych próbujesz stworzyć je na rzecz kolejnych danych.

$_SESSION['nazwa_wydarzenia'][$i]

$_SESSION['kto_dodal'][$i]

$_SESSION['data_wydarzenia'][$i]

$_SESSION['opis_wydarzenia'][$i]

Problem jest w tym, że te tablice nie istnieją i PHP tworzy je jednorazowo dla kolejnych wyników z bazy danych. Rozwiązaniem jest stworzenie w tablicy $_SESSION tablicy zawierającej kolejne tablice z pobieranymi rekordami.
komentarz 15 grudnia 2016 przez skrzatjedyny Gaduła (3,150 p.)
edycja 15 grudnia 2016 przez skrzatjedyny

Moglbys podac jakis przyklad? Bo z tego co zrozumialem to ten kod: 

for($i = 0; $i < $_SESSION['ile_wydarzen']; $i++)
                                {
                                    $nazwa_wydarzenia[$i] = $wydarzenie['nazwa_wydarzenia'];
                                    $kto_dodal[$i] = $wydarzenie['login'];
                                    $data_wydarzenia[$i] = $wydarzenie['data_wydarzenia'];
                                    $opis_wydarzenia[$i] = $wydarzenie['opis_wydarzenia'];
                                    $ID_przedmiotu[$i] = $wydarzenie['ID_przedmiotu'];

                                    if($result = $db_connect -> query("SELECT * FROM przedmioty WHERE ID_przedmiotu = '$ID_przedmiotu'"))
                                    {
                                        $nazwa_przedmiotu[$i] = $przedmiot['nazwa_przedmiotu'];
                                    }
                                }
                                
                                $_SESSION['nazwa_wydarzenia'] = $nazwa_wydarzenia;
                                $_SESSION['kto_dodal'] = $kto_dodal;
                                $_SESSION['data_wydarzenia'] = $data_wydarzenia;
                                $_SESSION['opis_wydarzenia'] = $opis_wydarzenia;
                                $_SESSION['nazwa_przedmiotu'] = $nazwa_przedmiotu;

powinien zadzialac, a tak sie nie dzieje :/

Podobne pytania

0 głosów
2 odpowiedzi 384 wizyt
pytanie zadane 21 grudnia 2016 w JavaScript przez skrzatjedyny Gaduła (3,150 p.)
0 głosów
1 odpowiedź 104 wizyt
pytanie zadane 19 marca 2017 w PHP przez prymex Obywatel (1,250 p.)
0 głosów
1 odpowiedź 146 wizyt

92,555 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,940 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...