David Thalmann: Problem mit mysql Klasse

Beitrag lesen

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