MrSolitude: mysqli_fetch

Hallo & Guten Morgen !
Gibt es in PHP eine schöne Funktion in der ich beim Auslesen einer Zeile einer Datenbanktabelle den Wert eines Feldes als Index für ein Array verwenden kann?

Beispiel:

So schaut die Tabelle aus:

|-----|------|

ID name
1234 blub
----- ------

Und mein Array welches ich gerne hätte sollte so ausschauen:

Array
     (
      [1234] => blub
     )

Gibt es dafür eine Funktion?

Ich bedanke mich schon mal gleich für die Hilfe
MrOrangeSky

  1. hi,

    Gibt es in PHP eine schöne Funktion in der ich beim Auslesen einer Zeile einer Datenbanktabelle den Wert eines Feldes als Index für ein Array verwenden kann?

    Nativ nicht, aber das dürfte doch in < 1 Minute selber geschrieben sein.

    Fetchen, dann einen der Werte aus dem Fetch-Array entfernen, und diesen als Key des Ergebnisarrays verwenden, und den Rest des Fetch-Arrays als neues Element des Ergebnisarrays.

    Wie weit du das dann noch aufbohren willst - Key-Auswahl dynamisch, eventuelle Fehlerbehandlung bei bereits vorhandenem Key, etc. - sei deiner Phantasie überlassen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Fetchen, dann einen der Werte aus dem Fetch-Array entfernen, und diesen als Key des Ergebnisarrays verwenden, und den Rest des Fetch-Arrays als neues Element des Ergebnisarrays.

      Jo,
      ich danke Dir mal dafür, so oder ähnlich habe ich mir das auch gedacht, fehlt mir nur leider derzeit noch das knowhow, aber man wächst schließlich mit seinen Aufgaben ;)

      1. echo $begrüßung;

        Fetchen, dann einen der Werte aus dem Fetch-Array entfernen, und diesen als Key des Ergebnisarrays verwenden, und den Rest des Fetch-Arrays als neues Element des Ergebnisarrays.
        ich danke Dir mal dafür, so oder ähnlich habe ich mir das auch gedacht, fehlt mir nur leider derzeit noch das knowhow, aber man wächst schließlich mit seinen Aufgaben ;)

        Als erstes legst du ein leeres Array an. Variablen explizit zu initialisieren ist nämlich immer eine gute Idee. Dann hast du deine Fetch-While-Schleife, die dir jeweils einen Datensatz aus der Ergebnismenge der Datenbankabfrage in Form eines Arrays mit den Feldnamen/-positionen als Schlüssel und den Feldwerten als Wert liefert. An das zuvor initialisierte Array hängst du nun einen neuen Eintrag an. Als Schlüssel nimmst du den einen Feld-Wert, als Wert den anderen Feld-Wert. In Code sieht das so aus:

        $ergebnis = array();  
        if ($db_result = mysqli_query(...)) {  
          while ($row = mysqli_fetch_assoc($db_result)) {  
            $ergebnis[$row['ID']] = $row['name'];  
          }  
        } else  
          // Fehlerbehandlung weil die Abfrage misslang
        

        echo "$verabschiedung $name";

  2. echo $begrüßung;

    Gibt es in PHP eine schöne Funktion in der ich beim Auslesen einer Zeile einer Datenbanktabelle den Wert eines Feldes als Index für ein Array verwenden kann?

    Nein, solch eine Funktion gibt es direkt in PHP nicht, das ist aber sehr einfach selbst umzusetzen. Außerdem bieten diverse Datenbankabstraktionen dies an, z.B. PEARs MDB2: MDB2_Extended::getAssoc().

    echo "$verabschiedung $name";

    1. oO,
      das hört sich schön und gut an, aber da bin ich als totaler newbie vollkommen überfordert...

      Ich befinde mich ja schon mit arrays auf neuem Terrain

      Danke für den Tipp, das werde ich mal im Hinterkopf bewahren.

      Danke und Grüße