Resetowanie się zmiennej sesyjnej.

0

Cześć. Mam taki o to kod:

<?php
session_start();

require_once 'connection.php';

if (!isset($_SESSION['max_id_wzoru'])) {
		$query = 'SELECT MAX(`ID_wzor`) as id FROM `wzor`';
		$result = $mysqli->query($query);
			
			if ($result != NULL)
			{
				$wzor = $result->fetch_assoc();
				
				$max_id_wzor = $wzor['id'];
		
				$max_id_wzor++;				
			}
			
			else 
			{	
				$max_id_wzor = 1;
			}	

		$_SESSION['max_id_wzor'] = $max_id_wzor;
		
		$result->free();
}
		
		$query = 'SELECT `ID_wzor` FROM `wzor` WHERE `ID_wzor` = ' . $_SESSION['max_id_wzor'];
		$result = $mysqli->query($query);
		
		if ($result->num_rows == 0)
		{
			$query = 'INSERT INTO `wzor`(`ID_wzor`) VALUES (' . $_SESSION['max_id_wzor'] . ')';
			$mysqli->query($query);
		}
 		
 		$mysqli->close();
?>

Zamiar jest taki, żeby dla jednej sesji pobrać wiersz z maksymalnym id, a to id zapisać do zmiennej sesyjnej. Pierwszy if powinien odpalić się tylko raz dla danej sesji, ponieważ w nim ustawiam tą zmienną, a warunek sprawdza czy ta zmienna jest ustawiona. Dlaczego tak się nie dzieje?

0

a czy sesja na pewno startuje poprawnie? nie masz tam jakiś znaków przed kodem php, które zablokują wystartowanie sesji? ten kod jest w pliku który wywołujesz a może includujesz tylko ten plik skądś?

0

Jeżeli chodzi o sesje, to wszystko jest ok. Nie ma żadnych znaków przed kodem, nagłówki nie zostały jeszcze wysłane, nawet sprawdziłem sam 'szkielet' kodu, wywalając cała obsługę bazy danych, zamiast tego pod zmienną sesyjną pobierałem aktualny czas i go wyświetlałem, to działało poprawnie czas się nie zmieniał, zmienna pozostawała ustawiona.

Obarczyłem winą kod odpowiedzialny za bazę danych, wiadomo pierwszej jakości nie jest ale raczej poprawny. Doszedłem do tego, że po zakomentowaniu tych linii:

$query = 'INSERT INTO `wzor`(`ID_wzor`) VALUES (' . $_SESSION['max_id_wzor'] . ')';
                        $mysqli->query($query);

Zmienna pozostaje ustawiona. Tak jakby ten kod zmieniający tabelę z której pobierana jest wartość do zmiennej sesyjnej resetował ją. Nie mam pomysłu co to może być.

1 użytkowników online, w tym zalogowanych: 0, gości: 1