webForumDet fria alternativet
Logga in / Bli medlem

Komma åt variabler...

PHP

1 svar · 200 visningar · startad av GrodanBoll

Medlem sedan sep. 2001788 inlägg
Trådstart#1

Hej hej
Hur ska jag komma åt en variabel utanför en if-sats?
Koden ser ut så här:

/////
// Om formuläret e submitat -> visa sökresultatet
/////
	if ($submit)
	{
		// först ska jag omvandla formulärfälten till rätt sorts tecken (så att databasen kan läsa dem korrekt)
		$persFornamn = changeCharSweToDb($persFornamn);
		$persEfternamn = changeCharSweToDb($persEfternamn);
		
		$result = array();
		
		// då söker jag då
		// om man söker på mer än avdelning ska man bara visa där 'avdpersPrimarAnst = 2'
		if ($persFornamn != '' || $persEfternamn != '')
		{
			global $result;
			
			$sqlquery = "SELECT p.persId, p.persFornamn, p.persEfternamn, a.avdLangtNamn, ap.avdpersTitel FROM tblPerson p INNER JOIN tblAvdelningPerson ap ON p.persId = ap.persId INNER JOIN tblAvdelning a ON ap.avdId = a.avdId WHERE p.persFornamn LIKE '%$persFornamn%' AND p.persEfternamn LIKE '%$persEfternamn%' AND a.avdId LIKE '$avdId' AND ap.avdpersPrimarAnst = '1'";
			$result = mssql_query($sqlquery,$dbconn) or die ("Error in query: $query.");
		}
		// om man endast väljer att visa en avdelning, då måste man visa alla personer där (både '2' och '1' för 'avdpersPrimarAnst')
		if ($persFornamn = '' & $persEfternamn = '')
		{
			global $result;
			
			$sqlquery = "SELECT p.persId, p.persFornamn, p.persEfternamn, a.avdLangtNamn, ap.avdpersTitel FROM tblPerson p INNER JOIN tblAvdelningPerson ap ON p.persId = ap.persId INNER JOIN tblAvdelning a ON ap.avdId = a.avdId WHERE a.avdId LIKE '$avdId'";
			$result = mssql_query($sqlquery,$dbconn) or die ("Error in query: $query.");
		}
		
		while ($row = mssql_fetch_array($result))
		{
			$strangen = changeCharSweFrDbShow($row["persFornamn"])." ".changeCharSweFrDbShow($row["persEfternamn"])." - ".changeCharSweFrDbShow($row["avdLangtNamn"])." - ".changeCharSweFrDbShow($row["avdpersTitel"])."<br>\n";
			echo $strangen;
		}
	
	}

Här vil jag alltså komma åt '$resultat', men det funkar inte... hur ska jag göra? :q

Bugar o tackar på förhand :)

/Grodan

Medlem sedan dec. 200049 inlägg
#2

Hm, en fråga, du skriver att du vill komma åt "$resultat", i scriptet heter den variabeln "$result".

Annars så ska variabeln (vad jag vet) vara tillgänglig utan problem om det du har där är hela scriptet.

Jobbar du med variabeln inom en funktion coh vill komma åt den utanför funktionen eller i en annan funktion är det lite annorlunda.

En variabel skapad inom en funktion är normalt bara tillgänglig inom den funktionen, du kan dock skapa en global variabel inuti funktionen som du kan komma åt utanför, eller i en annan funktion, men då måste du tala om för php att du vill det genom att deklarera variabeln igen i nästa funktion, som global.
exempel:

function setGlobalValue($fraga){
global $svar;
//gör en massa här
return $svar;
}

function useGlobalValue(){
global $svar;
//använd $svar
}

Se gärna manualen http://www.php.net/manual/en/language.variables.scope.php

//Dan

262 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)