Fehler beim auslesen von mySQL Tabelle

Flixi

Grünschnabel
Hallo :)

Ich habe mich herang getraut nach einem Tutorial von Euch (http://www.tutorials.de/tutorials15435.html )

Per PHP eine Tabelle in meiner mySQL Datenbank anzulegen, Daten in diese einzutragen und Sie danach in einer PHP Datei auszugeben...

Das erstellen der Tabbelle und das Eintragen funktionierte wunderbar, jedoch bekomme ich bei der php datei, die die Inhalte ausgeben soll eine Fehlermeldung angezeigt (Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/www/web63/html/svs/mob_db/db_ausgabe.php on line 20)

Kann mir vielleicht jemand helfen, wenn ich die Code's der verwendeten Dateien angebebe und einen Screenshot meines "phpMyAdmin" angebe?


... hier den code der Datei "db_erstellen.php"
Code:
<html>
<head>
<title>Tabellen erzeugen</title>
</head>
<body>

<?php

$host = "localhost";
$user = "webxx";
$password = "xxx";
$dbname = "usr_webxx_1";
$tabelle ="mob_db";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "CREATE table $tabelle (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name TEXT, lvlmin TEXT, lvlmax TEXT, map TEXT, locx TEXT, locy TEXT)";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Tabellenerzeugung erfolgreich.");
} else {
print ("Konnte Tabelle nicht erstellen.");
}
mysql_close ($dbverbindung);
?>

</body>
</html>

Wie gesagt, erfolgreich:
screen.jpg


In die Datenbank eintragen: (db_eingabe.HTML)
Code:
<html>
<head>
<title>Dateneingabe</title>
</head>
<body>
<form action="work.php" method=post>
Name <br>
<input type=text name="Array[name]" size= 50>
<br>
<br>
min. lvl <br>
<input type=text name="Array[lvlmin]" size= 50>
<br>
<br>
max. lvl
<input type=text name="Array[lvlmax]" size= 50>
<br>
<br>
map
<input type=text name="Array[map]" size= 50>
<br>
<br>
loc x
<input type=text name="Array[locx]" size= 50>
<br>
<br>
loc y
<input type=text name="Array[locy]" size= 50>
<br>
<input type=submit name="SUBMIT" value="ok">
</form>
</body>
</html>
klappt auch wie oben auf dem Screenshot sichtbar...

Hier die Datei, die die angaben verarbeitet... (work.php)

Code:
<html>
<head>
<title>Daten verarbeiten</title>
</head>
<body>

<?php

$host = "localhost";
$user = "webxx";
$password = "xxxx";
$dbname = "usr_webxx_1";
$tabelle ="mob_db";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '$Array[name]', '$Array[lvlmin]', '$Array[lvlmax]', '$Array[map]', '$Array[locx]', '$Array[locy]')";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>

</body>
</html>
klappt auch...

Und hier nun von der Datei, welche die daten ausgeben soll, in welcher der fehler auftaucht! (db_ausgabe.php)
Code:
<html>
<head>
<title>Inhalte ausgeben</title>
</head>
<body>

<?php

$host = "localhost";
$user = "webxx";
$password = "xxxx";
$dbname = "usr_webxx_1";
$tabelle ="mod_db";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("$ausgabe[name]<br><br>$ausgabe[lvlmin]<br><br>$ausgabe[lvlmax]<br><br>$ausgabe[map]<br><br>$ausgabe[locx]<br><br>$ausgabe[locy]<br><hr><br>");
 }

mysql_close ($dbverbindung)


?>

</body>
</html>

Der fehler wie oben genannt sagt on line 20...

Line 20: while ($ausgabe = mysql_fetch_array ($result))


########################################

Hehe .. also noch einaml die Frage zur einnerung, kann mir irgendjemand sagen, ob ich was falsch gemacht habe? und wenn ja was?

Danke im Vorraus, Flixi
 
versuche mal folgendes in Deiner db_ausgabe.php:

PHP:
<?php

$host = "localhost";
$user = "webxx";
$password = "xxxx";
$dbname = "usr_webxx_1";
$tabelle ="mod_db";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbselect = mysql_select_db ($dbname);

$result = mysql_query("SELECT * from $tabelle");

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("$ausgabe[name]<br><br>$ausgabe[lvlmin]<br><br>$ausgabe[lvlmax]<br><br>$ausgabe[map]<br><br>$ausgabe[locx]<br><br>$ausgabe[locy]<br><hr><br>");
 }

mysql_close ($dbverbindung)


?>
 
Erstmal danke, für die rasche antowrt, leider kommt der gleiche fehler nun in einer anderen zeile: (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web63/html/svs/mob_db/db_ausgabe.php on line 21)

Line 21: while ($ausgabe = mysql_fetch_array ($result))
 
lass die Daten mal richtig eintragen mit:

PHP:
$dbanfrage = mysql_query ("INSERT INTO $tabelle (name, lvlmin, lvlmax, map, locx, locy) VALUES ('$Array[name]', '$Array[lvlmin]', '$Array[lvlmax]', '$Array[map]', '$Array[locx]', '$Array[locy]')");

Die id kannst außer Acht lassen, da sie ein Auto_Increment besitzt!

Meine weitere Frage wäre - warum nimmst gleich ein Array! - Es würden auch die normalen Angaben reichen - nur müsstest Du dann die Variablen anders einlesen und zwar wie folgt:

Code:
<html>
<head>
<title>Dateneingabe</title>
</head>
<body>
<form action="work.php" method=post enctype=multipart/form-data>
Name <br>
<input type=text name="name" size= 50>
<br>
<br>
min. lvl <br>
<input type=text name="lvlmin" size= 50>
<br>
<br>
max. lvl
<input type=text name="lvlmax" size= 50>
<br>
<br>
map
<input type=text name="map" size= 50>
<br>
<br>
loc x
<input type=text name="locx" size= 50>
<br>
<br>
loc y
<input type=text name="locy" size= 50>
<br>
<input type=submit name="SUBMIT" value="ok">
</form>
</body>
</html>

Dann so:
PHP:
$dbanfrage = mysql_query ("INSERT INTO $tabelle (name, lvlmin, lvlmax, map, locx, locy) VALUES ('$name', '$lvlmin', '$lvlmax', '$map', '$locx', '$locy')");
in die Tabelle eintragen.

Und anschließend mit:

PHP:
$host = "localhost";
$user = "webxx";
$password = "xxxx";
$dbname = "usr_webxx_1";
$tabelle ="mod_db";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbselect = mysql_select_db ($dbname);

$result = mysql_query ("SELECT * FROM mod_db");

while ($ausgabe = mysql_fetch_array ($result))
{
print ("$name<br><br>$lvlmin<br><br>$lvlmax<br><br>$map<br><br>$locx<br><br>$locy<br><hr><br>");
}

mysql_close ($dbverbindung)


?>
ausgeben...

Ich hoffe, dass es jetzt geht! :)
 
In beiden fällen bekomme ich gesagt:
Es traten Probleme auf.

Schade :( ich weiß nicht worann es sonst liegen könnte... vielleicht gibt es sowas ja auch schon vorgeschrieben...

bin da etwas hilflos
 
Das ziel des ganzen soll eine Datenbank sein, welche Alfabetisch die namen auflistet und dahinter die jeweiligen angaben level, map, loc... mehr soll doch nicht bei rauskommen^^

Evtl noch die möglichkeit es nach alphabet oder level zu sortieren aber das ist zweitrangig
 
Zurück