PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Wie rufe ich mit PHP ein Feld aus einer Datenbank auf? (http://www.selfphp.de/forum/showthread.php?t=5768)

Slaughter 12.10.2003 18:40:39

Wie rufe ich mit PHP ein Feld aus einer Datenbank auf?
 
So nun erkenn ich meinen Fehler, den ich seit Anfang an hatte.
Er ist:
Ich kann keinen richtigen Befehl zum Aufrufen eines Feldes in einer Datenbank!

Nun frage ich euch, wie ist so ein richtiger Befehl aufgebaut.
Ich mach es folgender Maßen:
PHP-Code:

    ...
    
$sql"SELECT
                   Feld
               FROM
                   Tabelle"
;

    
$result mysql_query($sql) OR die(mysql_error());
    
$row mysql_fetch_assoc($result) OR die(mysql_error());
    
    echo 
""Feld ".$row['Feld']."""

Doch kriege ich bei dieser Variante immer nichts raus. (Sprich steht bei mir dann "Feld = ")
Was habe ich falsch gemacht, oder ist es alleine von den Befehlen falsch?

diver-network 12.10.2003 18:52:58

Hi,

den Befehl mysql_fetch_assoc() kenne ich leider nicht. Ich würde Dir eher mysql_fetch_array() empfehlen.

Schau hierzu doch einfach mal in SelfPHP nach, dort stehen einige Befehle, um Daten aus einer Datenbank in php- Variablen zu bekommen.

URL: http://www.selfphp.info/funktionsref...onen/index.php

Gruß,

Andy

Slaughter 12.10.2003 19:16:37

mysql_fetch_array ist so fast das gleiche, wie mysql_fetch_assoc.
Siehe Hierzzu
Zitat:

Original von SelfPHP

Mit mysql_fetch_array() kann man sich anhand einer Ergebnis-Kennung
(Ergebnis-Kennung) Datensätze in einem assoziativen Array übergeben lassen.
Dabei werden die Feldnamen innerhalb der Tabelle als Schlüssel des Arrays
genutzt. Im Erfolgsfall liefert diese Funktion den aktuellen Datensatz, sonst wird
false zurückgegeben.
Der zweite Parameter (Ergebnistyp) ist optional. Sie können in diesem Parameter
folgende Konstanten übergeben:
MYSQL_ASSOC: Funktionsergebnis ist ein assioziatives Array.
MYSQL_NUM: Funktionsergebnis ist ein numerisch indiziertes Array.
MYSQL_BOTH: Funktionsergebnis ist ein Array, das die Elemente des
Ergebnisdatensatzes sowohl assoziativ als auch numerisch indiziert enthält. Dies
ist der Default-Wert.
Wenn ich array benutze, kommt das selbe raus :(

diver-network 13.10.2003 09:01:40

Hi Slaughter,

danke für die Aufklärung bzgl. mysql_fetch_assoc(), schon wieder was gelernt.

Für Dein Problem würde ich Dir, wenn mysql_fetch_array() nicht funktioniert, noch mysql_fetch_row() empfehlen. Allerdings mußt Du da die Werte halt in einer Schleife zuerst in einzelne Variablen (bzw. ein Array) "reinpacken", außer Du gibst alles gleich direkt aus, kannst aber später nicht mehr mit dem Ergebnis arbeiten. Bei dem Array kann es sein, daß Du da vorher noch eine Variable definieren mußt, die dann in der Schleife als Array Index hochgezählt wird. Das hab ich im Moment nicht getestet.

HTH, falls nicht weiß ich auch nicht, wo das Problem liegen könnte. Außer, und das hoffe ich nicht, Du hast vergessen, die Anbindung an die DB zu machen (mysql_connect() und mysql_select_db() ) ;-)

Andy

Ben20 13.10.2003 10:09:56

Blöde Frage, aber heißt das Feld wirklich "Feld"? Der Array bezeiht sich nämlich auf den Feldnamen wie er in der DB steht!

Slaughter 13.10.2003 13:46:10

Zitat:

Original geschrieben von Ben20
Blöde Frage, aber heißt das Feld wirklich "Feld"? Der Array bezeiht sich nämlich auf den Feldnamen wie er in der DB steht!
Wie meinst du das? Ich habe es nur so so genannt. Wirklich heißt das Feld Datum und ich habe, überall wo jetzt Feld steht, Datum genannt.

Ben20 13.10.2003 15:54:27

Na dann ist ja alles OK! Neben den ganzen Funktionen gibts noch mysql_result($queryhandle, $zeilenr, $feldnr); um Werte aus der DB zu lesen!

schlodd 14.10.2003 09:12:41

die Funktion mysql_result ist aber langsamer und sollte nur in Ausnahmefällen angewandt werden (laut Jörg Krause, Auth. von Grundlagen und Profiwissen PHP4, Hanserverlag)

Ben20 14.10.2003 09:31:24

Es stimmt, das mysql_result() langsamer ist als mysql_fetch_row() - allerdings macht sich das in der Praxis kaum bemerkbar! (Extrembeispiele wie 60 - 70 SQL Abfragen (da ist mit Sicherheit dann ein Denkfehler drin) natürlich ausgenommen)

diver-network 15.10.2003 13:58:28

Hi Slaughter,

Dein Problem wird vermutlich die unterschiedliche Schreibweise (Groß-/Kleinschreibung) des Feldnamens sein.
Diese muß in der Tabelle und bei mysql_fetch_array() gleich sein.

Vergleiche hierzu auch den Thread "Problem mit mysql_fetch_array bzw. fetch_row" beim Experten Forum.

Der Tip kam übrigends von chris17, ihm gebühren die Blumen ;-)

HTH,

Andy


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:25:19 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.