PHP Klassen - objektorientierte Programmierung

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.
Antworten
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

PHP Klassen - objektorientierte Programmierung

Beitrag von h32Lg »

Hi @all,

ich bräuchte mal n bissal Hilfe beim genannten Thema. Ich hab zwar schon viel rumprobiert und gesucht, aber eine für mich passende Beschreibung nicht gefunden.

Die Problematik liegt darin, das ich mehrere Tabellen in meiner Datenbank in die Klasse holen möchte und von der Klasse aus dann auslesen, da ich gehört hab das Klassen noch Ressourcenschonender sind wie einfache Funktionen.

Nur versteh ich gerade nicht genau den Ablauf und die Funktionsweise der Klassen.

Nun hab ich mal angefangen ....


ich starte eine neue Sektion der Klasse:

Code: Alles auswählen

$objekt=new Klasse();
so weit so gut, dann möchte ich einen Wert aus dieser Klasse auslesen, zB die eMail-Adresse eines registrierten Users:

Code: Alles auswählen

echo $objekt->Klasse('mail');
bis hier hin müsste es ja auch noch stimmen, doch dann die Klasse an sich:

Code: Alles auswählen

class Klasse {
	function Klasse($value) {
		$sel_user	= mysql_query("SELECT `".$value."` FROM `db`.`hp_userinfos` WHERE `key` = '".mysql_real_escape_string($_COOKIE['hp_userinfos'])."';");
		$sel		= mysql_fetch_row($sel_user);
		$this->wert=$sel[0];
	}
}
Normalerweise müsste er mir nun die Spalte "mail" auslesen in welcher der key dem aus dem Cookie entspricht.
Das Cookie ist richtig gesetzt und auslesen tut ers auch, nur die DB-Abfrage/Klasse stimmt hier irgendwie nicht :roll:

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
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Re: PHP Klassen - objektorientierte Programmierung

Beitrag von djchrisnet »

Code: Alles auswählen

class Klasse {
	function Klasse($value) {
		$sel_user	= mysql_query("SELECT `".$value."` FROM `db`.`hp_userinfos` WHERE `key` = '".mysql_real_escape_string($_COOKIE['hp_userinfos'])."';");
		$sel		= mysql_fetch_row($sel_user);
		$this->wert=$sel[0];
                return $sel[0];
	}
}
probier das ma
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Lass dir doch von der Methode den SQL-Befehl per Echo ausgeben.
Außerdem würde ich eine Methode nicht gleich benennen wie die Klasse. Das hatte bis PHP 4 eine andere Bedeutung: http://de.php.net/manual/de/language.oo ... ructor.php

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Re: PHP Klassen - objektorientierte Programmierung

Beitrag von h32Lg »

djchrisnet hat geschrieben:

Code: Alles auswählen

class Klasse {
	function Klasse($value) {
		$sel_user	= mysql_query("SELECT `".$value."` FROM `db`.`hp_userinfos` WHERE `key` = '".mysql_real_escape_string($_COOKIE['hp_userinfos'])."';");
		$sel		= mysql_fetch_row($sel_user);
		$this->wert=$sel[0];
                return $sel[0];
	}
}
probier das ma
geht leider auch nicht :o

greets h32Lg 8)

PS: PhillipK ich nutze php4


EDIT:

das $value (mail) wird richtig übergeben, ein Echo von den beiden Sachen hier jedoch:

Code: Alles auswählen

		$this->wert=$sel[0];
		echo $this->wert;
		echo "<br />".$sel[0];
		return $sel[0];
ergibt nichts - keine Ausgabe :/
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!
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Mhh - wenn du PHP 4 nutzt, sollte sich das Ding schon bei der Initialisierung auf die Schnauze hauen...
Änder mal den Klassen- oder den Methodennamen.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

ändert leider auch nix, Funktionsname, Klassenname je geändert, aber keine Ausgabe in Sicht.

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!
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Poste doch mal bitte, was du jetzt hast.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

Hi,

Code: Alles auswählen

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

class blubb {
	function wert($value) {
		$sel_user   = mysql_query("SELECT `".$value."` FROM `db`.`hp_userinfo` WHERE `regkey` = '".mysql_real_escape_string($_COOKIE['hp_userinfo'])."';");
		$sel      = mysql_fetch_row($sel_user);
		$this->wert=$sel[0];
		return $sel[0];
	}
}

$objekt=new blubb();
echo $objekt->wert('mail');
?>
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
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

KB:knigge
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

Es ist tatsächlich ein MySQL-Fehler mit dem ich bisher überhaupt nicht gerechnet hab :o
SELECT command denied to user 'h32lg'@'localhost' for table 'hp_userinfo'

EDIT: ich weiß nicht genau woran es lag, aber ich hab mich mal als Root angemeldet in meinem phpAdmin-Bereich und die Rechte neu gesetzt, außerdem hatte ich einen Schreibfehler - großes statt kleines l - so das es gar nicht funzn konnte ;-)

thx trotzdem, nun hab ichs so:

Code: Alles auswählen

class blubb {
	function blubb($id) {
		$sel_user   = mysql_query("SELECT * FROM `db`.`hp_userinfo` WHERE `regkey` = '".$id."';");
		$sel      = mysql_fetch_assoc($sel_user);
		$this->email = $sel["mail"];
		$this->nick = $sel["nick"];
	}
	function getMail() { return $this->email; }
	function getNickname() { return $this->nick; }
}
$objekt=new blubb(mysql_real_escape_string($_COOKIE['hp_userinfo']));

echo "Mail: ". $objekt->getMail() . ", Nickname: ". $objekt->getNickname();
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!
Antworten

Zurück zu „Coding & Technik“