PHP/Mysql-Problem beim auslesen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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...)
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag 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)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag 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)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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);
} 
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“