mysql abfrage functioniret nicht

Alles, was PHP betrifft, kann hier besprochen werden.

mysql abfrage functioniret nicht

Postby darklord » 15. October 2006 17:37

Hallo,

also folgende situation ich versuche eine ganz einfache mysql abfrage mit php ( mein code:
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$link = mysql_connect("localhost","root","xxxxxxxxxx");
mysql_select_db("test", $link);
$tabellenname = "test";
$sql = 'SELECT name FROM `test`';
$ergebnis = mysql_query($sql,$link);
$echo = mysql_fetch_object($ergebnis, $link);

echo $echo


?>

</body>
</html>


aber im browser wird dann die fehlermeldung:
Warning: mysql_fetch_object() expects parameter 2 to be string, resource given in L:\Programme\xampp\htdocs\Meine test phps\index.php on line 15 angezeigt , ich hoffe irgendjeman kann mir helfen.


Danke im Voraus

Darklord

EDIT: ach ja die datenbank sieht so aus:
feld: name
typ: varchar(100)
Kollation: latin1_general_ci
NULL: Nein
und der wert ist "darklord"
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 18:20

Eigentlich steht's ja in der Fehlermeldung (und wird im Manual erklärt):
mysql_fetch_object() will als 2. Parameter nicht deine Variable $link haben.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby darklord » 15. October 2006 18:43

und was will mysql_fetch_objekt dann????
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 18:45

und was will mysql_fetch_objekt dann????

Gute Frage. Was steht denn im Manual was er da will?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby darklord » 15. October 2006 19:03

also ich bin ein php noob und ich glaube ich habe sowiso die falsche function verwendet alo könntest du mir vieleicht sagen wie ich es schaffe das der wert der spalte ausgegeben wird
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 19:15

also ich bin ein php noob

Und was hat das damit zu tun, im Manual nachzuschauen welche Parameter diese Funktion kennt und sich das Beispiel dort anzuschauen? (Eben damit, dem Manual lesen, fagen Noobs i.d.R. an :wink: )

Danach können wir ja weiterschauen...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby darklord » 15. October 2006 19:27

also ich habe es versucht so zu lösen:
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$link = mysql_connect("localhost","root","xxxxxxxx");
mysql_select_db("test", $link);
$tabellenname = "test";
$sql = 'SELECT name1 FROM test WHERE name1';
$ergebnis = mysql_query($sql,$link);
$i=0;
while($array[$i]=mysql_fetch_array($ergebnis))
{
$i=++$i;
}
//$echo = mysql_fetch_object($ergebnis);

echo $ergebnis


?>

</body>
</html>


aber so wird nur das zurück gegeben
Resource id #3

PS: den code habe ich aus einem php buch^^
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 19:53

PS: den code habe ich aus einem php buch

Dann schmeiss es weg, oder es steht in Wirklichkeit gar nicht so in diesem Buch.

BTW:
was du mit "echo" ausgeben willst, ist eigentlich das, was in dem Array $array drin ist (und nicht das in $ergebnis). Ein komplettes Array, testweise, musst du aber mit print_r() oder var_dump() ausgeben.

BTW:
Es gibt auch zu mysql_fetch_array() schöne Beispiele im PHP-Manual ;-)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby darklord » 15. October 2006 20:04

jetzt wird aber Array ( [0] => ) ausgegeben und nicht die werte der spalte 'name'
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby darklord » 15. October 2006 20:26

so ich habe jetzt einen meiner fehler gefunden und zwar habe ich $sql = 'SELECT name1 FROM test WHERE name1'; durch $sql = 'SELECT name1 FROM test'; ersetzt wen ich dern $array jetzt mit echo array[0] wiedergebe kommst seltamerweise das: Array, wenn ich es aber mit print_r wiedergebe kommt: Array ( [0] => Array ( [0] => bla [name1] => bla ) [1] => Array ( [0] => darklord [name1] => darklord ) [2] => )

also ich verstehe langsam garnichts mehr :?:
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 20:26

Dann dürfte das daran liegen, dass dein Query (das SELECT-Statement in $sql) kein Ergebnis liefert.

Hast du dieses Query so mal in phpMyAdmin getestet?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby darklord » 15. October 2006 20:29

das kann aber nicht sein wiel print_r Array ( [0] => Array ( [0] => bla [name1] => bla ) [1] => Array ( [0] => darklord [name1] => darklord ) [2] => ) ausgibt???

PS: in phpmyadmin functioniert das query
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 21:00

ersetzt wen ich dern $array jetzt mit echo array[0] wiedergebe kommst seltamerweise das: Array, wenn ich es aber mit print_r wiedergebe kommt: Array ( [0] => Array ( [0] => bla [name1] => bla ) [1] => Array ( [0] => darklord [name1] => darklord ) [2] => )

Dann stimmt doch alles? *grübel*

(Du hast in deiner Datenbank 2 Datensätze. In einem steht "bla" in der Spalte "name1", im anderen "darklord".)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby darklord » 15. October 2006 21:26

ja aber ich will das das so wiedergegeben wird:

darklord
bla
darklord
 
Posts: 23
Joined: 29. September 2006 19:53

Postby Wiedmann » 15. October 2006 22:00

Dann musst du das deinem Code auch sagen. Der macht halt was du programmierst ;-)

Die simpelste und eine der möglichen Lösungen wäre die while-Schleife so umzuschreiben:
Code: Select all
while($array=mysql_fetch_array($ergebnis))
{
echo "{$array['name1']}<br>\n";
}

(und das echo am Schluss weglassen)

BTW:
Nur nochmal anmerken, dass im Prinzip genau so dann das Beispiel im PHP-Manual aussieht.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 20 guests