[PHP/MYSQL] Anwendungsbeispiele zu mysql_fetch_???

  • Guten Tag liebe Fische,

    aufgrund dieses Threads ( *Klick*) wollte ich nun mal das "Mysterium" um mysql_fetch_array & mysql_fetch_object klären.


    Vorweg: Wenn man sich nicht schon mal mit der Materie PHP & MySQL auseinander gesetzt hat ist das hier nichts für einen ;). Ich berichte hier Erfahrungswerte, an die lieben Hater die mich lieben: Danke für den Klick auf den Thread, das ganze ist extra nur für Laien geschrieben...



    Um nun mal zu dem "Tutorial" zu kommen:


    Wie viele sicherlich schon kennen gelernt haben gibt es 5 Möglichkeiten um eine MySQL Referenz zu "fetchen":
    -Mysql_fetch_array
    -mysql_fetch_assoc
    -mysq_fetch_object
    -mysql_fetch_row(Wird nicht so häufig verwendet)
    -mysql_fetch_field(Wird nicht so häufig verwendet)



    Wobei mysql_fetch_array und mysql_fetch_assoc so ziemlich das gleiche sind bis die Parameteranzahl.
    [tabmenu]

    [tab=MySQL Fetches]
    [subtab=Wichtig!] Wir gehen nun davon aus das bereits eine Datenbank + Tabelle erstellt wurde und eine Verbindung zwischen php und mysql hergestellt wurde(mysql_connect & co)

    [subtab=mysql_fetch_array]

    PHP
    <?php
    $query = mysql_query("SELECT * FROM `testtabele` WHERE `id`= '1'");
    $array = mysql_fetch_array($query, MYSQL_ASSOC);
    echo $array['name']; // gibt aus: Hans Peter
    ?>


    PHP.net: mysq_fetch_array
    [subtab=mysql_fetch_assoc]

    PHP
    <?php
    $query = mysql_query("SELECT * FROM `testtabele` WHERE `id`= '1'");
    $array = mysql_fetch_assoc($query);
    echo $array['name']; // gibt aus: Hans Peter
    ?>


    PHP.net: mysq_fetch_assoc
    [subtab=mysql_fetch_object]

    PHP
    <?php
    $query = mysql_query("SELECT * FROM `testtabele` WHERE `id`= '1'");
    $array = mysql_fetch_object($query);
    echo $array->name; // gibt aus: Hans Peter
    ?>


    PHP.net: mysq_fetch_object
    [subtab=mysql_fetch_row]

    PHP
    <?php
    $query = mysql_query("SELECT * FROM `testtabele` WHERE `id`= '1'");
    $array = mysql_fetch_row($query);
    echo $array[0]; // gibt aus: 1
    echo $array[1]; // gibt aus: Hans Peter
    ?>


    PHP.net: mysq_fetch_row
    [subtab=mysql_fetch_field]

    PHP
    <?php
    $query = mysql_query("SELECT * FROM `testtabele` WHERE `id`= '1'");
    $array = mysql_fetch_field($query);// hat noch einen weiteren parameter: field_offset siehe dazu referenz
    echo $array->id; // gibt aus: 1
    echo $array->name; // gibt aus: Hans Peter
    ?>
    Ist sehr ähnlich mit "mysql_fetch_object"


    PHP.net: mysq_fetch_field
    [/tabmenu]


    Einen anderen Unterschied gibt es da nicht bis auf die Verwendung der Variable.


    Das war der kleine Unterschied ;)


    Mit freundlichen Grüßen


    Spoiler anzeigen
    Edit: mysql_fetch_row & mysql_fetch_field hinzugefügt, Überschrift angepasst

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

    Einmal editiert, zuletzt von Developer ()

  • Wie sieht es mit den zwei weiteren typen von "mysql_fetch_array"
    und was ist mit den funktionen mysql_fetch_row oder mysql_fetch_field?


    Damit kann man auch wie du schon sagtest: "eine MySQL Referenz zu "fetchen"


    Naja alles in allem ist es kein Tutorial, eher nur ein kleines Anwendungsbeispiel.


    MfG

  • stimmt, danke an die 2 habe ich jetzt nicht gedacht da ich sie selber eigentlich nie verwende. Ich pack sie + ein Anwendungsbeispiel gleich mal rein...


    Naja alles in allem ist es kein Tutorial, eher nur ein kleines Anwendungsbeispiel.


    Sollte es auch sein, da in letzter Zeit viele hier auftauchen die diese Funktionen falsch nutzen bzw. den Namen falsch interpretieren

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • Ich bin mir nun nicht zu 1000000% sicher, nichtmal zu 50%, aber da kann @dead: evtl. Licht ins Dunkle bringen, der kann nicht nur programmieren, sondern versteht das auch noch. Nicht so wie ich. :D


    Bei mysql_fetch_object wird kein Array sondern ein Objekt zurückgegeben und bei mysql_fetch_array wird kein Objekt sondern ein Array zurückgegeben.
    Ich weiß nun nicht, was genau das heißt bzw. was der Unterschied ist und ziehe daher mein Telefonjoker @dead: zur Rate. :D


    Wenn du darauf eingegangen wärst, wäre es ein Tutorial - aber so ist es einfach nur ein kleines Anwendungsbeispiel.

  • mysql_fetch_row wäre auch noch erwähnenswert, nur mal so am Rande bemerkt. Laut den Hinweisen in der PHP-Doku soll es leicht schneller als fetch_object sein. (//e: hoppala, da hab ich wohl gerade geschrieben, als du am Editieren warst x:)
    Und wenn du schon so einen Thread erstellst, wäre ein Verweis zu mysqli und/oder PDO ganz angebracht. :p


    TutNichts: Der große Unterschied ist einfach die Handhabung. Die Arrays kannst du auch mit Zahlen als Index ansprechen, die Eigenschaften im Objekt sind jedoch nicht mit Zahlen ansprechbar. Oder, um mal die PHP-Doku zu zitieren:

    Zitat

    Hinweis:
    mysql_fetch_object() ist ähnlich wie mysql_fetch_array(), aber mit dem Unterschied, dass ein Objekt statt eines Arrays zurückgegeben wird. Indirekt bedeutet das, dass Sie auf die Daten nur über die Feldnamen zugreifen können und nicht über die Offsets (da Zahlen keine erlaubten Namen für Eigenschaften sind).


    Beispiel wäre also:

    PHP
    //als Array:
    $result[1]; //möglich
    //als Objekt:
    $result->1; //nicht möglich

    Ich bin Dittis Signatur.