[PHP] Problem z "return" w fukcji

0

Moja funkcja nie chce zwracać mi zmiennej:

function checkOwner($currentAID, $DB_Host, $DB_Username, $DB_Passwrd, $DB_Name) {
		
		$polaczenie = @mysql_connect($DB_Host, $DB_Username, $DB_Passwrd)  // Laczenie z baza danych
		or die('Brak polaczenia z serwerem mysql. Blad: '.mysql_error());
		
		$db = @mysql_select_db($DB_Name, $polaczenie)                     // wybór tabeli
		or die('Nie moge polaczyc sie z baza danych. Blad: '.mysql_error());
		
		$myUID=$_SESSION['myUID'];
		
		$wynik=mysql_query("SELECT  AID, UID FROM `uaparts` WHERE `AID`='$currentAID'");
		while($selekcja = mysql_fetch_array($wynik)) {
			
			if ($myUID==$selekcja['UID']) { $owner="true"; } else { $owner="false"; } 
		
		}
		
		mysql_close($polaczenie); 
		
		return $owner;
	
}

Nie zwraca jej nawet w takim przypadku

function checkOwner($currentAID, $DB_Host, $DB_Username, $DB_Passwrd, $DB_Name) {
		
		$polaczenie = @mysql_connect($DB_Host, $DB_Username, $DB_Passwrd)  // Laczenie z baza danych
		or die('Brak polaczenia z serwerem mysql. Blad: '.mysql_error());
		
		$db = @mysql_select_db($DB_Name, $polaczenie)                     // wybór tabeli
		or die('Nie moge polaczyc sie z baza danych. Blad: '.mysql_error());
		
		$myUID=$_SESSION['myUID'];
		
		$wynik=mysql_query("SELECT  AID, UID FROM `uaparts` WHERE `AID`='$currentAID'");
		while($selekcja = mysql_fetch_array($wynik)) {
			
			if ($myUID==$selekcja['UID']) { $owner="true"; } else { $owner="false"; } 
		
		}
		
		mysql_close($polaczenie); 

		$owner="true";
		return $owner;
	
}

Why?

0

Może tam nie dochodzi, bo wykonuje się któreś die?

Można trochę łatwiej:

while($selekcja = mysql_fetch_array($wynik)) {
    if ($myUID==$selekcja['UID']) {
        mysql_close($polaczenie);
        return true;
    }
}
mysql_close($polaczenie);
return false;

W Twoim kodzie, jeśli $myUID nie będzie ostatnim rekordem w wynikowym zestawie, to funkcja zawsze zwróci false.

0

Nie żaden die sie nie wykonuje. Część kodu odpowiedzialna za czytanie bazy danych i weryfikację $myUID jest poprawna bo działa poprawnie gdy ją wyciągnę z funkcji.

Nie wiem dlaczego funkcja nie chce zwrócić mi żadnej zmiennej na zewnątrz.

EDIT: Poradziłem sobie dzięki Twojej radzie, ale dalej nie mam pojęcia dlaczego nie chce wyrzucać zmiennych?

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