Hallo, Guten Tag... und schönen Abend!
Ich hab mich nach langem Kampf mit mir selber ( :D ) endlich dazu entschieden, mit Klassen zu arbeiten, da ich auf einer Homepage (war glaub phpforum.de) eine super Erklärung gefunden habe.
Doch schon mein erster Versuch scheiterte... hier einmal die Klasse:
(classes/db.class.php)
<?php
class db
{
var $host="localhost"; #host, meisstens localhost
var $user=""; #username für datenbank
var $password=""; #passwort für datenbank
var $dbname="newcouch"; #datenbankname
var $connid; #connection id
var $result; #array/string zum testen ob abfrage vorhanden ist und zum ausgeben
/*
db_connect
stellt verbindung zur datenbank her
*/
function db_connect()
{
$this->connid = mysql_connect($this->host, $this->user, $this->password);
mysql_select_db($this->dbname, $this->connid) or die(mysql_error());
}
####Funtkioniert bis hier....
/*
sql_select
verschiedene möglichkeiten zur abfrage
*/
function sql_select($table, $field="*", $order="", $dir="", $from="", $to="")
{
if(empty($field)) $field = "*"; # wenn nichts angegeben alle wäheln
if(!empty($order)) $order = " ORDER BY ".$order."
"; # order by...
if(!empty($dir)) $dir = " ".$dir; # gewünschte "richtung" (DESC / ASc)
if(empty($from) && empty($to)) $limit = ""; # wenn keine begrenzung
elseif(empty($from) && !empty($to)) $limit = " LIMIT 0, ".$to; # wenn nur nach oben begrenzt
else $limit = " LIMIT ".$from.", ".$to; # wenn oben und unten begrenzung
$abfrage = ""SELECT ".$field."
FROM ".$table."
".$order."".$dir."".$limit."""; # abfrage string
echo "$table <br>$field <br>$from <br>$to <br>$order <br>$dir <br />$this->connid <br /><br />$abfrage<br />";
da eben nix funktioniert diese ausgabe, sollte aber eigentlich alles gehen
if(!$this->result = mysql_query($abfrage, $this->connid)) return "Fehler beim Senden der Abfrage..."; # error
else return $this->result; # gibt das resultat zurück
}
}
?>
Dann die index.php:
<?PHP
include("classes/db.class.php");
$db = new db;
$db->db_connect();
$db->db_select();
$cont = $db->sql_select("testentry","text");
ist doch richtig so oder?
echo $cont;
gibt vordefinierte fehlermeldung aus ("Fehler beim Senden der Abfrage")
$cont = mysql_fetch_array($cont);
gibt fehler aus, dass es kein brauchbares resultat ist
echo $cont[0];
?>
Dass gibt das ganze aus:
testentry
text
DESC
Resource id #5
"SELECT text
FROM testentry
DESC"
Fehler beim Senden der Abfrage...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\*******************\index.php on line 19
Ich hoffe das mir jemand helfen kann!
Herzliche Grüsse aus der Schweiz
David