Seite 2 von 2

Verfasst: 11.05.2008 12:57
von gn#36
Das global muss in die Funktion! Nicht alleine in die Datei.

Und zwar sogar in der Funktion vor der Benutzung von $date, sonst bringt das ganze nix... ein Global in einer Datei bringt nur ganz selten was (nämlich, wenn der Include der Datei innerhalb einer Funktion stattfindet, womit der Code virtuell wieder in der Funktion steht...)

Verfasst: 11.05.2008 13:05
von h32Lg
Also ich habs so:

index.php:

Code: Alles auswählen

<?php
	//Sessionmanagement
	session_name ("SID");
	session_start();
	
	//Includes hier:
	include('hiermeinefunktionsdatei.php');
		
	//Funktion beim ersten Seitenaufruf
	switch ($_GET["menu"]) {
		case "main";
		break;
	}
?>
hiermeinefunktionsdatei.php:

Code: Alles auswählen

<?php
//Includes hier:
include('dbconfig.php');
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

// Global: Fehlermeldungen
$err_mail = "Die eingegebene eMail-Adresse ist nicht g&uuml;ltig!";
$err_leer = "Alle Felder mit einem * m&uuml;ssen ausgef&uuml;llt werden!";
$err_code = "Der eingegebene Sicherheitscode ist nicht korrekt!";
$err_lang = "Der eingegebene Text ist zu lang!";
$err_db = "Ein Datenbankfehler ist w&auml;hrend der Operation aufgetreten! Bitte kontaktiere einen Administrator";
$msg_danke = "Vielen dank f&uuml;r deine Nachricht!";
...

// Global: Variablen
$date = date("Y-m-d");
...

// Global: Funktionen
...
function heute () {
	$result = mysql_query("SELECT `datum` FROM `h32lg`.`dbname` WHERE `datum` = '". $date ."'");
	return mysql_num_rows($result);
}
...
und normal müsste es doch auch so Funktionieren.

Derzeit hab ich es so, das ich innerhalb der Funktion auch noch das $date definiert hab, also über dem $result, wobei bei anderen Funktionen auch auf $date von der ersten definition zugegriffen wird.

Das ist es ja, was ich gerade nicht verstehe ;-)

greets h32Lg 8)

Verfasst: 11.05.2008 21:55
von gn#36
Nein! Genau so funktioniert es eben nicht! Das global muss in der Funktion stehen, da globale Variablen eben nur dann in Funktionen verwendbar sind, wenn du sie per global $varname; in der Funktion (und wenn es mehrere sind in jeder einzelnen) bekannt machst.

Verfasst: 11.05.2008 23:31
von h32Lg
ja ne, is doof ^^ hab mir jetz ne eigene Funktino extra für dieses Datumsformat erstellt und greif jetzt via datum(); drauf zu, thx trotzdem ;-)

greets h32Lg 8)

Verfasst: 11.05.2008 23:48
von gn#36
Das brauchst du doch gar nicht. Eine einzige Zeile

Code: Alles auswählen

global $date;
in der Funktion ganz oben reicht völlig aus.

Also

Code: Alles auswählen

function heute () {
global $date;
   $result = mysql_query("SELECT `datum` FROM `h32lg`.`dbname` WHERE `datum` = '". $date ."'");
   return mysql_num_rows($result);
}