
habe ein problem, was mich zum verzweifeln bringt!! *schluchtz*! also ich bekomme immer diesen fehler:
Warning: mysql_fetch_field(): supplied argument is not a valid MySQL result resource in /home/www/web51/html/mysqldb.php on line 96
das hier ist die betroffene zeile:
while ($field = mysql_fetch_field($this->resid))
ich will an dieser stelle im skript daten auslesen und sie als überschrift einer tabelle anzeigen lassen!
ich habe in einem älteren post gelesen, dass das problem ein fehlendes leerzeichen ist, aber sowas finde ich bei mir nicht :( ich bin php noob und will eine mysql klasse schreiben! hier ist mein ganzes script!
an den "logindaten" kann es nicht liegen, denn mit einem ganz normalen mysql_connect befehl kann ich mich einwählen! das listing ist aus einem buch, in dem es funktioniert, jedoch bei mir nicht :(!! bitte helft mit schnell!!!!!!!!!!!!!
<?php
class mysql_db {
var $link = false;
var $resid = false;
var $doerror = false;
var $host = "127.0.0.1";
var $user = "geheim";
var $passwd = "geheim";
var $tables = "geheim";
function connect()
// Verbindet zur Datenbank
{
$temp = @mysql_connect
($this->host, $this->user, $this->passwd);
if (!$temp)
{
$this->echoerror();
return false;
}
$this->link = $temp;
$temp = @mysql_select_db($this->tables, $temp);
if (!$temp)
{
$this->echoerror();
return false;
}
return $this->link;
}
function query($sql)
// Sendet eine Anfrage an die Datenbank
{
if (!$this->link)
{
if ($this->doerror)
{
echo ("<b>Nicht verbunden.</b><br>");
return false;
}
}
if ($this->resid) @mysql_free_result($this->resid);
$result = mysql_query($sql, $this->link);
if (!$result) $this->echoerror();
$this->resid = $result;
return $result;
}
function echoerror()
// erzeugt eine Fehlerausschrift
// wenn $doerror=TRUE
{
if (!$this->doerror) return;
if (!mysql_errno()) return;
echo ("<font color=\"red\"><b>" . mysql_errno());
echo (": ". mysql_error() ." </b></font><br>");
}
function data()
// liefert einen Datensatz
{
if (!$this->link)
{
if ($this->doerror)
echo ("<b>Nicht verbunden!</b><br>");
return false;
}
if (!$this->resid)
{
if ($this->doerror)
echo ("<b>Keine Abfrage!</b><br>");
return false;
}
$result = mysql_fetch_array($this->resid, MYSQL_BOTH);
$this->echoerror();
return $result;
}
function echoquery($sql)
//Fragt die Datenbank ab und stellt die Abfrage dar
{
$this->query($sql);
echo("<table border cellpadding=\"3\"><tr>");
$index = 0;
echo("<th>record</th>");
while ($field = mysql_fetch_field($this->resid))
echo("<th>$field->name</th>");
echo ("</tr>\n");
$rec=0;
while ($row = $this->data())
{
$rec++;
echo("<tr><td>$rec</td>");
for ($i=0; $i<mysql_num_fields($this->resid); $i++)
echo("<td>".htmlentities($row[$i])." </td>");
echo("</tr>\n");
}
echo ("</table>");
}
function set_doerror($boolvalue)
{
$this->doerror = $boolvalue;
}
function mysql_db()
// Construktor
{
$this->connect();
}
}
$db = new mysql_db;
?>
die datei heißt mysqldb.php!! nun habe ich eine zweite datei mit dem name 1test.php in der folgendes steht:
<?php
include("mysqldb.php");
$db->echoquery("select * from vofarbe");
?>
es soll also der inhalt der tabelle vofarben der datenbank in einer tabelle dargestellt werden, doch irgendwie geht es nicht, da dieser fehler kommt! :
Warning: mysql_fetch_field(): supplied argument is not a valid MySQL result resource in /home/www/web51/html/mysqldb.php on line 96
woran kann es liegen und was kann ich machen?
johnpatcher
Zitat:Ähm, da verlangst Du doch ein wenig zu viel.
ihr könnt mir auch mailen pkc_schnuffel@hotmail.com