MySQL: Daten auslesen - nur "Resource id #4"? (N00b)
Philipp
- php
0 Butterbrot0 Philipp0 Butterbrot0 Philipp0 Butterbrot0 Philipp
0 Tobias Kloth
0 Tobias Kloth0 Philipp
Hallo,
ich fange gerade mit MySQL an und habe ein Problem mit dem Daten auslesen. Ich habe 3 PHP-Seite - eine Config, eine zum Tabelle anlegen und Daten schreiben sowie eine zum Auslesen der Daten.
wenn ich die Daten auslesen will, zeigt er mir als Ergebnis nu "Resource id #4" an (echo).
Folgender Code zum schreiben:
<?php
include("config.php");
$DataConnect = mysql_connect($DataHost, $DataUserName, $DataPassword);
mysql_select_db($DataName, $DataConnect) or die ("Fehler: Ausgewählte Datenbank ist nicht vorhanden.");
mysql_query("create table $DataTable(ID INT NOT Null AUTO_INCREMENT Primary Key, Name VARCHAR(20) NOT Null, Comment VARCHAR(100) NOT Null)");
mysql_query("insert into $DataTable(Name, Comment) values('Spiky Halo', 'Echt tolle Seite!')");
mysql_close($DataConnect);
?>
---
Und folgender zum lesen:
<?php
include("config.php");
$DataConnect = mysql_connect($DataHost, $DataUserName, $DataPassword);
mysql_select_db($DataName, $DataConnect) or die ("Fehler: Ausgewählte Datenbank ist nicht vorhanden.");
$Name = mysql_query("select Name from $DataTable", $DataConnect);
echo "Daten:<br> $Name";
mysql_close($DataConnect);
?>
Wo liegt der Fehler? Ich hab auf meinem Server mal geguckt, die Tabelle wurde erstellt und die Daten auch hineingeschrieben.
Danke im Voraus!
MfG Philipp
Probiere das mal:
$DataTable="name der tabele";
$Name = mysql_fetch_assoc(mysql_query("SELECT Name from '$DataTable'"));
echo "Date:<br>".$Name;
anstat von
$Name = mysql_query("select Name from $DataTable", $DataConnect);
echo "Daten:<br> $Name";
$Name = mysql_fetch_assoc(mysql_query("SELECT Name from '$DataTable'"));
echo "Date:<br>".$Name;
Bekomme leider ein
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/htdocs/poly-pixel.de/mysql/read.php on line 9
Daten:
Sorry mein fehler und zwar musst du sicher sein bei mysql_fetch_assoc das du nur eine zeile asugewählt hast.
Das machst du mit der WHERE abfrage. wie z.B.
$Name = mysql_fetch_assoc(mysql_query("SELECT Name FROM '$DataTable' WHERE id=1"));
echo "Date:<br>".$Name;
Bekomme ein:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/htdocs/poly-pixel.de/mysql/read.php on line 8
Date:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/www/htdocs/poly-pixel.de/mysql/read.php on line 11
Ich seh langsam nicht mehr durch...*lol*
OK da wo ich geschrieben hab "WHERE id=1" das musst ändern.
Wenn di table falgender massen asugebaut ist
id name mail
2 oli oli@mail.de
3 hans hans@lala.de
5 bernd b.tool@tool.de
so jezt musst du sagen
WHERE id=2
dann bekomsmt du die daten vom hans
oder
WHERE name='oli'
dann bekommst du die daten vom oli
ES GEHT *freu* *freu* *freu*
Hier der Code:
<?php
include("config.php");
$DataConnect = mysql_connect($DataHost, $DataUserName, $DataPassword);
mysql_select_db($DataName, $DataConnect) or die("Fehler: Ausgewählte Datenbank ist nicht vorhanden.");
$Result = mysql_query("select Name from $DataTable", $DataConnect);
$Name = mysql_fetch_assoc($Result);
echo $Name["Name"];
mysql_close($DataConnect);
?>
Danke an euch beide!
Hallo Butterbrot,
$Name = mysql_fetch_assoc(mysql_query("SELECT Name from '$DataTable'"));
wesentlich schlechter kann man es eigentlich nicht mehr machen - du kannst nicht überprüfen, ob mysql_query auch wirklich den $query bekommt, von dem du glaubst dass er ihn bekommt und du fängst keinerlei Fehler ab.
echo "Date:<br>".$Name;
und das wird nur "Array" ausgeben. (wie sich auf http://de3.php.net/mysql_fetch_assoc nachlesen lässt, gibt mysql_fetch_assoc() ein Array zurück)
Grüße aus Nürnberg
Tobias
Hallo Philipp,
$DataConnect = mysql_connect($DataHost, $DataUserName, $DataPassword);
warum bekommt dies Funktion nicht auch ein "or die(mysql_error())" o.ä.?
$Name = mysql_query("select Name from $DataTable", $DataConnect);
in $Name hast du jetzt eine Verbindungs-Kennung mit Hilfe derer du mit mysql_fetch_* (z.B. mit mysql_fetch_assoc() (->http://de.php.net/mysql_fetch_assoc)) deine Daten abholen kannst. Schau dir die Seite mal an - wenn du noch Fragen hast, frag nochmal nach (in diesem Thread).
Grüße aus Nürnberg
Tobias
Ich kirge leider immer noch ein
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/htdocs/poly-pixel.de/mysql/read.php on line 11
Hab jetzt folgendes geschrieben:
$Result = mysql_query($SQL);
$Name = mysql_fetch_assoc($Result);
echo $Result["Name"];
Hallo Philipp,
Auch wenn das Problem inzwischen gelöst ist:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/htdocs/poly-pixel.de/mysql/read.php on line 11
in solchen fällen immer mysql_error() befragen (z.B. so: $row = mysql_fetch_assoc($Result) or die(mysql_error());)
Hab jetzt folgendes geschrieben:
$Result = mysql_query($SQL);
$Name = mysql_fetch_assoc($Result);
echo $Result["Name"];
$Result ist kein Array - $Name dagegen schon. In solchen Fällen hilft ein var_dump($foo) um zu sehen, was ein einer Variablen eigentlich drinsteht.
Grüße aus Nürnberg
Tobias