PX : code

Getting Tablenames with a mysql_fetch_array() by Thomas Hansmann
Download this code


<?php
  define
('MYSQL_FETCH_TABARR',0);   # Tabellennamen als zusätzliches Array
  
define('MYSQL_FETCH_TABNON',1);   # Tabellennamen ignorieren
  
define('MYSQL_FETCH_TABSTR',2);   # Tabellennamen als String-Präfix

  # Funktion mysql_fetch_array_tab: Liefert einen selektierten Datensatz.
  #  [res]  Datenbankresultat 
  #  [typ]  Art des Datensatzarrays (Vorgabe: MYSQL_ASSOC)
  #  [tab]  Umsetzung der Tabellennamen (Vorgabe: MYSQL_FETCH_TABNON)
  
function db_mysql_fetch_array_tab($res,$typ=MYSQL_ASSOC,$tab=MYSQL_FETCH_TABNON) {
    
# Umsetzung von $typ über mysql_fetch_array() realisieren: Wenn die
    # Tabellennamen umgesetzt werden sollen, werden beim Typ DB_ASSOC
    # zusätzlich noch numerische Indizes erzeugt.
    
$arr mysql_fetch_array($res,$tab!=MYSQL_FETCH_TABNON&&$typ==MYSQL_ASSOC?MYSQL_BOTH:$typ);
    
# Kein Ergebnis bzw. Tabellennamen ignorieren: Ergebnis zurückliefern.
    
if (!$arr || $tab==MYSQL_FETCH_TABNON) return($arr);
    
# Datensatz abarbeiten (nur numerische Indizes):
    
foreach ($arr as $f => $v) if (is_int($f)) {
      
# Tabellennamen feststellen:
      
$t mysql_field_table($res,$f);
      
# Bei MYSQL_ASSOC numerischen Index wieder löschen:
      
if ($typ == MYSQL_ASSOC) unset($arr[$f]);
      
# Sonst fortlaufenden numerischen Index je Tabelle erzeugen:
      
else $i intval($c[$t]++);
      
# Außer bei MYSQL_NUM noch Feldnamen feststellen:
      
if ($typ != MYSQL_NUM$n mysql_field_name($res,$f);
      
# Tabellennamen als String-Präfix: Feld(er) erzeugen.
      
if ($tab == MYSQL_FETCH_TABSTR) {
        if (isset(
$i)) $arr[$t.'.'.$i] = $v;
        if (isset(
$n)) $arr[$t.'.'.$n] = $v;
      
# Tabellennamen als zusätzliches Array: Array(s) erzeugen.
      
} else {
        if (isset(
$i)) $arr['.'][$t][$i] = $v;
        if (isset(
$n)) $arr['.'][$t][$n] = $v;
      }
    }
    return(
$arr);
  }
?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.