• 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

0 głosów
207 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 531 wizyt
pytanie zadane 21 grudnia 2016 w JavaScript przez skrzatjedyny Gaduła (3,150 p.)
0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 19 marca 2017 w PHP przez prymex Obywatel (1,250 p.)
0 głosów
1 odpowiedź 272 wizyt

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...