Seite 1 von 1
FEhler in meiner eigenen Klasse
Verfasst: 31.01.2006 19:21
von witzigerkiller
Hallo, ich sehe immer öfter, das die leute, zum auslesen der daten klassen benutzen. Finde leider den fehler net, ist totales neuland für mich
Code: Alles auswählen
<?PHP
class db
{
var $query = "";
function display()
{
$this->query = mysql_query($this->query);
$this->query = mysql_fetch_assoc($this->query);
return $this->query['Vorname'];
}
}
$db = new db();
$db->query = "SELECT * FROM member";
$db->display();
?>
DAnke
Verfasst: 01.02.2006 16:50
von witzigerkiller
also es wird nichts ausgegeben
Verfasst: 02.02.2006 06:41
von witzigerkiller
*schieb*
Verfasst: 02.02.2006 13:52
von Gast210225
Siehst du irgendwo in dem Code ein echo() ?
Es muss so heißen:
Viele Grüße,
Johannes
Verfasst: 02.02.2006 13:53
von witzigerkiller
gleich ausprobieren.... Danke schonmal
Verfasst: 02.02.2006 14:20
von witzigerkiller
so, danke, habe das jetzt mal gemacht....
Habe jetzt versucht aus der DAtenbank verschiedene Spalteneinträge auszulesen:
Code: Alles auswählen
<?PHP
// Verbindungsaufbau
$db_server = "localhost"; // Datenbank Server
$db_benutzer = "root"; // Datenbank Benutzer
$db_passwort = ""; // Datenbank Passwort
$db_name = "bcp"; // Datenbank Name
$verbindung = mysql_connect($db_server, $db_benutzer, $db_passwort) OR die("Fehler beim Connecten mit der Datenbank: ".mysql_error());
mysql_select_db($db_name) OR die ("Fehler beim Datenbank auswählen: ".mysql_error());
// Datenbank Klasse
class db
{
// Funktion zum hinzufügen von Einträgen
function insert()
{
$this->insert = mysql_query($this->insert);
}
// Funktion zum auslesen der Einträge
function display($ausgabefeld)
{
$this->display = mysql_query($this->display);
$this->display = mysql_fetch_assoc($this->display);
return $this->display[$ausgabefeld];
}
}
// Klasse der Datenbank wird aufgerufen
$db = new db();
$db->display = "SELECT * FROM member WHERE Vorname = 'Tobias'";
echo $db->display('Vorname')."<br />";
echo $db->display('id');
?>
nur leider wird das erste echo ausgegebn, und beim 2ten kommt ne fehlermeldung...
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\test\class.php on line 27
aber der mysql befehl muss richtig sein, da er ja das erste feld auch ausliest
Verfasst: 02.02.2006 15:15
von QCO
Ja, beim zweiten Aufruf wird auch das
mysql_query()
nochmal ausgeführt. Und $this->display ist zu dem Zeitpunkt kein valider SQL-Query [sondern ein Array].
Verfasst: 02.02.2006 15:19
von witzigerkiller
danke, habe die klasse nun so geändert:
Code: Alles auswählen
class db
{
// Funktion zum hinzufügen von Einträgen
function insert()
{
$this->insert = mysql_query($this->insert);
}
// Funktion zum auslesen der Einträge
function display()
{
$this->display = mysql_query($this->display);
$this->display = mysql_fetch_assoc($this->display);
return $this->display;
}
}
// Klasse der Datenbank wird aufgerufen
$db = new db();
$db->display = "SELECT * FROM member WHERE Vorname = 'Tobias'";
$db->display();
echo $db->display['Vorname']."<br />";
echo $db->display['id'];
so funzt das auch wunderbar
EDIT: WIE KÖNNTE MAN DAS NOCH BESSER MACHEN? Ich habe auch gelesen, das manche da sowas machen /*@DESC: Titel*/
odersowas, was ist das genau, ist das nötig?