Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

mysql_fetch_field():

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])."&nbsp;</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

Hier gehts zum Orginal Eintrag "mysql_fetch_field():" im Forum

Antworten

ihr könnt mir auch mailen pkc_schnuffel@hotmail.com


2.

Da geht die Query in die Hose, warum auch immer. Daher mal nach der Query diese Zeile einbauen:

if (mysql_errno()) echo mysql_error();

Dann bitte dies lesen:

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.dclp-faq.de/q/q-sql-select.html

Und beachte den blau geschriebenen Text in meiner Signatur!!

Zitat:
ihr könnt mir auch mailen pkc_schnuffel@hotmail.com
Ähm, da verlangst Du doch ein wenig zu viel.

*** Nobody ***


3.

und ändere mal die Vorbelegung auf
var $doerror = true;
ab, damit Dir Fehler auch wirklich angezeigt werden


4.

danke für den guten tipp es wird jetzt folgendes angezeigt:

1146: Table 'usr_web51_1.vofarbe' doesn't exist
record
Warning: mysql_fetch_field(): supplied argument is not a valid MySQL result resource in /home/www/web51/html/mysqldb.php on line 96

Keine Abfrage!

ich bin mir aber 100% sicher das es diese tabelle gibt!! es kann höchstens sein, dass er sich nicht eingeloggt hat, wie erkenne ich das?

johnpatcher


5.

jungs und mädels ich kann es noch kaum fassen!! ich habe es geschafft!!! ich habe einfach die Select anweißung großgeschrieben, die FROM auch und es ging!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


juhu!!


Hier gehts zum Orginal Eintrag "mysql_fetch_field():" im Forum
 
phpforum.de | Impressum | Handy Bundles