Funktion "get gresult()"

From Limbas Wiki

Revision as of 11:47, 11 March 2021 by Peter (talk | contribs) (Texte)

Jump to: navigation, search

<-- zurück zu Admin-Dokumentation / <-- zurück zur Hauptseite


array get_gresult(numeric $gtabid, numeric $utyp, array $filter, array $gsr, array $verkn, array $onlyfield=null, numeric $single=null, array $extension=null, numeric $pointer=null)

Funktion für die Tabellenabfrage (./limbas_src/gtab/gtab.lib).

Zusammenfassung der Parameter:

  • Spezifikation der Ziel-Tabelle mit $gtabid.
  • Anpassen der Ergebnisanzahl, anzeigen von versionierten/archivierten Datensätzen, Sortierung des Ergebnisses mit $filter.
  • Filtern der Ergebnismenge mit $gsr.
  • Filtern auf verknüpfte Datensätze mit $verkn.
  • Auswahl der Ergebnis-Felder mit $onlyfield.
  • Abfragen eines einzelnen Datensatzes mit $single.
  • Erweiterung des SQL-Queries mit $extension.
  • Pagination bei Abfragen mit $pointer.


Parameter:

$gtabid

→ gültige Tabellen-ID: Die Abfrage wird auf die entsprechende Tabelle angewandt.

→ ungültige Tabellen-ID: Die Abfrage gibt eine Fehlermeldung zurück.

$utyp

Für $utyp sind folgende Werte gültig:

→ 1: Standard

→ 0: Einstellung für Spezialfälle, die hier nicht weiter erläutert werden.

$filter

→ null: Alle Datensätze, die den Kriterien der anderen Übergabeparametern entsprechen, sind im Rückgabewert enthalten

→ Gültige Einstellungen im $filter-Array wirken sich auf die interne Ergebnismenge der Datenbank oder die Datensätze im Rückgabewert aus:

Ausweitung der internen Ergebnismenge

$filter["nolimit"][$gtabid] = $nolimit;

Für $nolimit sind folgende Werte gültig:

  • 1: Die Anzahl der Datensätze in der internen Ergebnismenge der Datenbank ist unbegrenzt
  • 0: Die Anzahl der Datensätze in der internen Ergebnismenge der Datenbank ist durch den Wert der Umgebungsvariablen "resultspace" begrenzt.


Pagination

$filter["anzahl"][$gtabid] = $anzahl;

Für $anzahl sind folgende Werte gültig:

  • 'all': Alle Datensätze aus der internen Ergebnismenge der Datenbank werden im Rückgabewert berücksichtigt
  • Zahl größer 0: "$anzahl" Einträge aus der internen Ergebnismenge der Datenbank werden im Rückgabewert berücksichtigt
  • default: Gibt es für diese Einstellung keine Angabe, so wird der Wert aus der Einstellung für die "max. Anzahl Treffer" aus den Benutzerdaten des angemeldeten Benutzers verwendet
 $filter["page"][$gtabid] = $page;

Für $page sind folgende Werte gültig:

  • Zahl kleiner gleich 1: Die Datensätze, die im Rückgabewert berücksichtigt werden, werden aus der internen Ergebnismenge der Datenbank ohne Offset ausgewählt.
  • Zahl größer 1: Die Datensätze, die im Rückgabewert berücksichtigt werden, werden aus der internen Ergebnismenge der Datenbank mit dem Offset "$page * $anzahl" ausgewählt. Ist dieser Offset größer als die Anzahl der Datensätze der internen Ergebnismenge, so wird kein Offset verwendet.


Sortierung

$filter["order"][$gtabid][$ordernumber] = array($gtabid,$tabellenfeldId,$order);

Mit der aufsteigenden $ordernumber können Unter-Sortierungen angegeben werden. Dabei beginnt die $ordernumber normalerweise mit 0.
Für $order sind folgende Werte gültig:

  • 'ASC': Die Sortierung der Datensätze in der internen Ergebnismenge der Datenbank erfolgt aufsteigend nach dem Inhalt des Tabellenfeldes mit der ID "$tabellenfeldId"
  • 'DESC': Die Sortierung der Datensätze in der internen Ergebnismenge der Datenbank erfolgt absteigend nach dem Inhalt des Tabellenfeldes mit der ID "$tabellenfeldId"

Soll bei gleichen Inhalt nach weiteren Tabellenfeldern sortiert werden, können mehrere derartige Anweisungen gesetzt werden.

Filtern auf Datensatz-Eigenschaften

archiviert

$filter["unhide"][$gtabid] = $unhide;

Für $unhide sind folgende Werte gültig:

  • -1: Datensätze werden nicht gefiltert
  • 0: Es werden nur nicht-archivierte Datensätze ausgegeben
  • Andere Werte: Nur archivierte Datensätze werden im Rückgabewert berücksichtigt

versioniert

$filter["viewversion"][$gtabid] = $viewversion;

Für $viewversion sind folgende Werte gültig:

  • 0: Einstellung ohne Auswirkung
  • Zahl ungleich 0: Bei versionierten Datensätze werden auch die älteren Datensätze im Rückgabewert berücksichtigt


gesperrt

$filter["locked"][$gtabid] = $locked;

Für $locked sind folgende Werte gültig:

  • 0: Einstellung ohne Auswirkung
  • Zahl ungleich 0: Nur gesperrte Datensätze werden im Rückgabewert berücksichtigt


mit Wiedervorlage

$filter["gfrist"][$gtabid] = $gfrist;

Für $gfrist sind folgende Werte gültig:

  • 0: Einstellung ohne Auswirkung
  • Zahl ungleich 0: Nur die Datensätze, deren Wiedervorlage-Zeit abgelaufen ist, werden im Rückgabewert berücksichtigt


Verknüpfte Datensatz-IDs

$filter["relationval"][$gtabid] = 1;

Der Filter "relationval" bewirkt, dass man anstatt der Anzahl der verküpften Datensätze die IDs der verknüpften Datensätze als Array erhält.


Filtern nach Gültigkeit

$filter["validity"][$gtabid] = $date;

Über den Filter "validity" kann eine mit dem Parameter "validity" gekennzeichnete Tabelle nach einem Datum gefiltert und somit nur die in diesem Zeitraum gültigen Datensätze angezeigt werden. NULL Werte in den entsprechenden von/bis Feldern werden als gültig betrachtet.

Sonstiges

Weitere Einstellungen im $filter-Array sind für Spezialfälle, die hier nicht weiter erläutert werden.

 $filter["report"][$gtabid] = $report;
$filter["hidelocked"][$gtabid] = $hidelocked;
$filter["nosverkn"][$gtabid] = $nosverkn;
$filter["alter"][$gtabid] = $alter;
$filter["groupheader"][$gtabid]
$filter["groupheaderKey"][$gtabid]
$filter["tabulatorKey"]
$filter["gwidth"][$gtabid]
$filter["ext_RelationFields"]
$filter["formrelation"]
$filter["getlongval"]
$filter["report"]

$gsr

→ null: alle Datensätze, die den Kriterien der anderen Übergabeparametern entsprechen, sind im Rückgabewert enthalten

→ Durch gültige Einstellungen im $gsr-Array lassen sich Filter definieren, die bewirken, dass im Rückgabewert nur Datensätze mit bestimmten Inhalten berücksichtigt werden.

Ein gsr-Filter wird definiert durch eine Operation und einen Operanden. Bei der Auswertung wird die Operation mit dem Inhalt des entsprechenden Datenfeldes und dem Operanden ausgeführt. Als Ergebnis ergibt sich ein true/false-Wert. Mehrere gsr-Filter können per and/or kombiniert werden. Beim Endergebnis "false" wird der Datensatz nicht im Rückgabewert berücksichtigt.

Mit folgenden Konstrukten können Operation und Operand des Filters gesetzt werden (die Variable "$laufendeNr" kann dabei frei gewählt werden, muss aber bei den zwei bzw. drei Zuweisungen für einen Filter jeweils identisch sein):

Texte

  • Text-Operation (ohne Berücksichtigung von Groß-/Kleinschreibung)
$gsr[$gtabid][$tabellenfeldId][$laufendeNr] = $operand;
$gsr[$gtabid][$tabellenfeldId]['txt'][$laufendeNr] = $operationID;
Für die $operationID sind folgende Werte verfügbar:
  • 1: Überprüfung, ob der im Operanden angegebene Text im Inhalt des Datenfeldes enthalten ist ( %$% ) (default)
  • 2: Überprüfung, ob der im Operanden angegebene Text identisch mit dem Inhalt des Datenfeldes ist ( == )
  • 3: Überprüfung, ob der Inhalt des Datenfeldes mit dem im Operanden angegebene Text anfängt ( $% )
  • 4: Überprüfung, ob der Inhalt des Datenfeldes ähnlich wie der angegebene Text klingt ( metaphone )
  • 5: Überprüfung, ob der Inhalt des Datenfeldes mit dem im Operanden angegebenen Text endet ( %$ )
  • 7: Überprüfung, ob der Inhalt des Datenfeldes leer ist
  • 8: Überprüfung, ob der Inhalt des Datenfeldes nicht leer ist

Bei Verwendung der Postgres Indizierung:

  • 9: Überprüfung, ob alle Wörter in dem Text vorkommen
  • 10: Überprüfung, ob eines der Wörter in dem Text vorkommt
  • 11: Überprüfung, ob der Satz in dem Text vorkommt
  • Berücksichtigung von Groß-/Kleinschreibung
$gsr[$gtabid][$tabellenfeldId]['cs'][$laufendeNr] = 1;
  • Text-Operation für Texte aus Dateien bzw. Datenfelder des Typs long unter Verwendung der Index-Suche
$gsr[$gtabid][$tabellenfeldId][$laufendeNr] = $operand;
$gsr[$gtabid][$tabellenfeldId]['string'][$laufendeNr] = $operationID;
Für die $operationID ist folgender Wert verfügbar:
  • 1: Überprüfung, ob der im Operanden angegebene Text im Inhalt des Datenfeldes bzw. der verwiesenen Datei enthalten ist unter Berücksichtigung von Groß-/Kleinschreibung (?). Diese Operation ist nur möglich bei Indizierung aller Worte in der Reihenfolge des Vorkommens (Umgebungsvariable "indize_level" = 2).

Zahlen

  • numerische Operation
$gsr[$gtabid][$tabellenfeldId][$laufendeNr] = $operand;
$gsr[$gtabid][$tabellenfeldId]['num'][$laufendeNr] = $operationID;
Für die $operationID sind folgende Werte verfügbar:
  • 1: Überprüfung, ob der im Operanden angegebene Wert gleich dem Inhalt des Datenfeldes ist ( = )
  • 2: Überprüfung, ob der im Operanden angegebene Wert größer als der Inhalt des Datenfeldes ist ( > )
  • 3: Überprüfung, ob der im Operanden angegebene Wert kleiner als der Inhalt des Datenfeldes ist ( < )
  • 4: Überprüfung, ob der im Operanden angegebene Wert kleiner oder gleich dem Inhalt des Datenfeldes ist ( <= )
  • 5: Überprüfung, ob der im Operanden angegebene Wert größer oder gleich dem Inhalt des Datenfeldes ist ( >= )
  • 6: Überprüfung, ob der im Operanden angegebene Wert ungleich dem Inhalt des Datenfeldes ist ( != )
  • 7: Überprüfung, ob das Datenfeld leer ist (NULL)
  • 8: Überprüfung, ob das Datenfeld nicht leer ist (NOT NULL)

Datum

$gsr[$gtabid][$tabellenfeldId][$laufendeNr] = $operand;
$gsr[$gtabid][$tabellenfeldId]['num'][$laufendeNr] = $operationID;
Für den $operand werden folgende Formate unterstützt (Bezeichnung: Beispiele)
  • Kalenderwoche: KW3, KW 4 2020, cw 14
  • Nur Jahr: 1976, 2020
  • Jahr mit Monat: 12.1976, 4.2020
  • Volles Datum (mit oder ohne Zeit) (Formate unterstützt von strtotime())
Für die $operationID werden folgende Formate unterstütz: Siehe Zahlen.

Negation

  • Negation einer Abfrage
$gsr[$gtabid][$tabellenfeldId][$laufendeNr] = $operand;
...
$gsr[$gtabid][$tabellenfeldId]['neg'][$laufendeNr] = 1;

Mehrere Filter (and/or)

Bei mehreren Filtern pro Tabellenfeld ist ab dem zweiten Filter die folgende Zuweisung zu ergänzen:

$gsr[$gtabid][$tabellenfeldId]['andor'][$laufendeNr] = $operationID;

Für die $operationID sind folgende Werte verfügbar:

  • 1: Der Filter wird mit den bisherigen AND-verknüpft (default)
  • 2: Der Filter wird mit den bisherigen OR-verknüpft

Bei mehreren Verknüpfungen mit wechselnder Verknüpfungsart ist der Vorrang von der verwendeten Datenbank abhängig. Die Umgebungsvariable "searchcount" definiert, wie viele Filter pro Tabellenfeld maximal berücksichtigt werden.


Bei Filter für mehrere Tabellenfelder definiert die folgende Zuweisung, wie diese verknüpft werden (ein Wechsel zwischen AND/OR ist hier nicht möglich):

$gsr[$gtabid]['andor'] = $operationID;

Für die $operationID sind folgende Werte verfügbar:

  • 1: Die Ergebnisse der Filter werden AND-verknüpft (default)
  • 2: Die Ergebnisse der Filter werden OR-verknüpft

$verkn

→ null oder 0: Alle Datensätze, die den Kriterien der anderen Übergabeparametern entsprechen, sind im Rückgabewert enthalten.

→ Array, das sinnvollerweise mit der Funktion init_relation() generiert wird: Im Rückgabewert werden nur Datensätze berücksichtigt, die mit dem durch die Übergabeparameter von init_relation() spezifizierten Tabellenfeld verknüpft sind.

→ ungültiger Wert: Der Rückgabewert enthält keine Datensätze.

$onlyfield

→ null: Die Datensätze im Rückgabewert beinhalten alle Tabellenfelder.

→ $onlyfield[$gtabid] = array($tabellenfeldId1, $tabellenfeldId2, ...): Die Datensätze im Rückgabewert beinhalten nur die gelisteten Tabellenfelder

→ wird ein array() mit für diese Abfrage ungültigen Daten übergeben, enthält der Rückgabewert keine Datensätze

→ wird nur der String "ID" übergeben, enthält der Rückgabewert nur systemspezifische Angaben sowie die ID der Datensätze

$single

Dieser Parameter ist für die Verwendung bei Tabellen (nicht bei Abfragen) vorgesehen. Er sollte nur gesetzt werden, wenn $pointer=null/0 ist.

→ null oder 0: Alle Datensätze, die den Kriterien der anderen Übergabeparametern entsprechen, sind im Rückgabewert enthalten.

→ gültige Datensatz-ID: Der Rückgabewert enthält nur den Datensatz mit der übergebenen Datensatz-ID, vorausgesetzt er entspricht den Kriterien der anderen Übergabeparameter.

→ ungültige Datensatz-ID: Der Rückgabewert enthält keine Datensätze.

$extension

Über diesen Parameter kann das generierte SQL Statement individuell erweitert werden.

Folgende Erweiterungen sind möglich:

  • select
erweitert die "SELECT" Komponente des SQL Statement. Es können eigene Felder oder Aliase hinzugefügt werden.
$extension['select'][0] = "TABELLENNAME.FELDNAME";
  • from
erweitert die "FROM" Komponente des SQL Statement. Es können eigene Tabellen oder Aliase hinzugefügt werden.
$extension['from'][0] = "TABELLENNAME";
  • where
erweitert die "WHERE" Komponente des SQL Statement.
$extension['where'][0] = "Bedingung";
  • order
ersetzt die interne Sortierung.
$extension['order'][0] = "FELDNAME";
  • ojoin
erweitert die "OUTER JOIN" Komponente des SQL Statements. Es können eigene LEFT/RIGHT (OUTER) JOINS hinzugefügt werden.
$extension['ojoin'][LINKER TABELLENNAME][RECHTER TABELLENNAME][0] = "Bedingung"; // LEFT (OUTER) JOIN
$extension['ojoin'][LINKER TABELLENNAME][RECHTER TABELLENNAME]['LEFT'][0] = "Bedingung"; // LEFT (OUTER) JOIN
$extension['ojoin'][LINKER TABELLENNAME][RECHTER TABELLENNAME]['RIGHT'][0] = "Bedingung"; // RIGHT (OUTER) JOIN
  • distinct
erweitert die Abfage zum ignorieren doppelter Ergebnisse.
$extension["distinct"] = "DISTINCT";

Beispiel 1 (select, from, where, order)

In diesem Beispiel sollen alle Mitarbeiter, die einen Dienstwagen besitzen mit dessen Marke, nach der Marke sortiert, aufgelistet werden:

require_once('../limbas_src/gtab/gtab.lib');

// Nehme zusätzlich aus der Tabelle "dienstwagen" das Feld "MARKE"
$extension['select'][0] = "DIENSTWAGEN.MARKE";
$extension['from'][0] = "DIENSTWAGEN";

// Wähle nur die Datensätze, bei denen das Kennzeichen des Mitarbeiters mit dem
// Kennzeichen des Dienstwagens übereinstimmt
$extension['where'][0] = "MITARBEITER.KENNZEICHEN = DIENSTWAGEN.KENNZEICHEN";

// Sortiere alphabetisch nach der Marke des Dienstwagens
$extension['order'][0] = "MARKE";

// Zeige nur den Namen des Mitarbeiters (Feld-ID: 1) und das Feld "MARKE"
$onlyfield[52] = array(1, 'MARKE');

// Rufe die Funktion get_gresult mit den definierten Optionen auf
// 52 ist hier die ID der Tabelle MITARBEITER
$gresult = get_gresult(52, 1, $filter, null, null, $onlyfield, null, $extension);

Das Ergebnis (Ausschnitt):

...
[1] => Array
     (
          [0] => August Spieldose
          [1] => Maximilian Oberhauser
          [2] => Alfred Unterberger
     )

[MARKE] => Array
     (
          [0] => Fiat
          [1] => Mercedes
          [2] => Opel
     )
...

Beispiel 2 (select, ojoin, order)

In diesem Beispiel sollen alle Mitarbeiter, egal ob sie einen Dienstwagen besitzen oder nicht, mit dessen Marke, nach der Marke sortiert, aufgelistet werden:

require_once('../limbas_src/gtab/gtab.lib');

// Nehme zusätzlich aus der Tabelle "dienstwagen" das Feld "MARKE"
$extension['select'][0] = "DIENSTWAGEN.MARKE";

// Nehme alle Mitarbeiter, auch wenn Sie keinen Dienstwagen besitzen
$extension["ojoin"]['MITARBEITER']['DIENSTWAGEN'][0] = "MITARBEITER.KENNZEICHEN = DIENSTWAGEN.KENNZEICHEN";

// Sortiere alphabetisch nach der Marke des Dienstwagens
$extension['order'][0] = "MARKE";

// Zeige nur den Namen des Mitarbeiters (Feld-ID: 1) und das Feld "MARKE"
$onlyfield[52] = array(1, 'MARKE');

// Rufe die Funktion get_gresult mit den definierten Optionen auf
// 52 ist hier die ID der Tabelle MITARBEITER
$gresult = get_gresult(52, 1, $filter, null, null, $onlyfield, null, $extension);

Das Ergebnis (Ausschnitt):

...
[1] => Array
     (
          [0] => August Spieldose
          [1] => Maximilian Oberhauser
          [2] => Alfred Unterberger
          [3] => Salamir Solemio
     )

[MARKE] => Array
     (
          [0] => Fiat
          [1] => Mercedes
          [2] => Opel
          [3] => 
     )
...

Beispiel 3 (select, ojoin mit Verknüpfungstabelle)

Alle Kunden sollen mit all ihren Kontakten (sofern vorhanden) ausgegeben werden.

require_once('../limbas_src/gtab/gtab.lib');

$table_id_kunden = 4;

// Um das Feld NAME in der Tabelle KONTAKTE auszugeben, muss es in das SELECT-statement eingefügt werden
// Um eine Verwechslung mit dem Feld NAME in der Tabelle KUNDEN zu vermeiden, wird das Alias KONTAKTNAME hinzugefügt
$extension['select'][] = "KONTAKTE.NAME AS KONTAKTNAME";

// Hier wird die Verknüpfung KUNDEN -> VERK_17e64eb8914c6 -> KONTAKTE in das statement einbezogen
// Die Verknüpfung VERK_17e64eb8914c6 -> KONTAKTE kann z.B. durch einen INNER JOIN realisiert werden
// Die Tabelle KUNDEN wird dann mit einem LEFT (OUTER) JOIN damit vereint.
// Der Verknüpfungstabelle wird der Einfachheit halber das Alias VERKN gegeben
$extension['ojoin']['KUNDEN']['(KONTAKTE INNER JOIN VERK_17e64eb8914c6 VERKN ON VERKN.VERKN_ID = KONTAKTE.ID)'][] = "KUNDEN.ID = VERKN.ID";

// Nur folgende Felder sollen angezeigt werden:
// - Name des Kunden   (NAME hat ID 2 in der Tabelle KUNDEN)
// - Name des Kontakts (In der select-Erweiterung oben wurde diesem Feld das Alias KONTAKTNAME gegeben)
$onlyfield[$table_id_kunden] = array(2, 'KONTAKTNAME');

// get_gresult wird mit der ID der Tabelle KUNDEN (4), sowie den weiteren Parametern aufgerufen
$gresult = get_gresult($table_id_kunden, 1, $filter, null, null, $onlyfield, null, $extension);

Das Ergebnis (Ausschnitt):

...
[2] => Array
     (
          [0] => Alfreds Futterkiste
          [1] => Alfreds Futterkiste
          [2] => Alfreds Futterkiste
          [3] => Antonio Moreno Taquería
          [4] => Around the Horn
          [5] => Blauer See Delikatessen
          [6] => Blondel père et fils
          [7] => Bólido Comidas preparadas
          [8] => Bon app'
          [9] => Bottom-Dollar Markets
          [10] => B's Beverages
     )

[KONTAKTNAME] => Array
     (
          [0] => Unterberger
          [1] => Oberhauser
          [2] => Summerey
          [3] => Ronzilius
          [4] => Sundoni
          [5] => Spieldose
          [6] => Unterseer
          [7] => Ibins
          [8] => Fresinger
          [9] => 
          [10] => 
     )
...

$pointer

Dieser Parameter ist für die Verwendung bei Abfragen vorgesehen. Er sollte nur gesetzt werden, wenn $single=null/0 ist.

→ null oder 0: Alle Datensätze, die den Kriterien der anderen Übergabeparametern entsprechen, sind im Rückgabewert enthalten.

→ gültige relative Position eines Datensatzes in der internen Ergebnismenge der Datenbank: Der Rückgabewert enthält nur den Datensatz, welcher sich in der internen Ergebnismenge der Datenbank an der übergebenen Position befindet, vorausgesetzt er entspricht den Kriterien der anderen Übergabeparameter.

→ ungültige relative Position eines Datensatzes in der internen Ergebnismenge der Datenbank: Der Rückgabewert enthält keine Datensätze.

Rückgabewert:

Im folgenden sind einige der möglichen Werte des zurückgegebenen Arrays erläutert. Welche Werte tatsächlich gesetzt sind, hängt von den Eingabeparametern ab.

  • [$gtabid][res_count]
→ Anzahl der durch die Abfrage ermittelten Datensätze in der Ergebnismenge der Datenbank
  • [$gtabid][need_time]
→ benötigte Zeit für die SQL-Abfrage der Datenbank
  • [$gtabid][max_count]
→ Anzahl der durch die Abfrage ermittelten Datensätze in der Ergebnismenge der Datenbank
  • [$gtabid][res_next]
→ Gibt die Position des ersten in diesem Rückgabewert enthaltenen Datensatzes in der internen Ergebnismenge der Datenbank an
  • [$gtabid][res_viewcount]
  • [$gtabid][LOCK][SELF][]
  • [$gtabid][LOCK][TIME][]
  • [$gtabid][LOCK][USER][]
  • für alle ($anzahl) ermittelten Datensätze:
  • für alle Tabellenfelder der Tabelle:
  • [$gtabid][$tabellenfeldid][0..($anzahl-1)"]
→ Tabelleninhalt
  • [$gtabid][id][0..($anzahl-1)"]
→ von LIMBAS vergebene eindeutige ID des Datensatzes (siehe auch Auto-ID)
  • [$gtabid][ERSTDATUM][0..($anzahl-1)"]
→Datum der Erstellung des Datensatzes (siehe auch Post-Date)
  • [$gtabid][EDITDATUM][0..($anzahl-1)"]
→Datum der der letzten Änderung des Datensatzes (siehe auch Edit-Date)
  • [$gtabid][EDITUSER][0..($anzahl-1)"]
→Name des Benutzers, der den Datensatz als letztes verändert hat (siehe auch Edit-User)
  • [$gtabid][ERSTUSER][0..($anzahl-1)"]
→Name des Benutzers, der den Datensatz erstellt hat (siehe auch Post-User)
  • [$gtabid][DEL][0..($anzahl-1)"]
→0: Der Datensatz ist nicht archiviert
→1: Der Datensatz ist archiviert.
  • [$gtabid][INUSE_TIME][0..($anzahl-1)"]
  • [$gtabid][INUSE_USER][0..($anzahl-1)"]
  • [$gtabid][IS_OWN_USE][0..($anzahl-1)"]
  • [$gtabid][VID][0..($anzahl-1)"]
  • [$gtabid][VPID][0..($anzahl-1)"]
  • [$gtabid][VACT][0..($anzahl-1)"]
  • [$gtabid][VDESC][0..($anzahl-1)"]
  • [$gtabid][IS_OWN_USER][0..($anzahl-1)"]

Beispiel:

ID Definitionen

$ID = 1;
define("CUSTOMER_TAB",5);
define("CONTACT_TAB",3);
define("CONTACT_LASTNAME",1);
define("CONTACT_NAME",2);
define("CUSTOMER_LASTNAME",1);
define("CUSTOMER_NAME",2);
define("CUSTOMER_STREET",8);
define("CUSTOMER_CONTACTS",6);

Ausgabe der Tabelle Kunde von Datensatz mit ID=1 und der Felder name; vorname; Straße

$gresult = get_gresult(CUSTOMER_TAB,1,null,null,null,array(CUSTOMER_TAB=>array(CUSTOMER_LASTNAME,CUSTOMER_NAME,CUSTOMER_STREET)),$ID);
$result_name = $gresult[CUSTOMER_TAB][CUSTOMER_LASTNAME][0];
$result_firstname = $gresult[CUSTOMER_TAB][CUSTOMER_NAME][0];
$result_street = $gresult[CUSTOMER_TAB][CUSTOMER_STREET][0];

Ausgabe der Verknüpften Kontakte dieses Kunden

$relation_setting = set_verknpf(CUSTOMER_TAB,CUSTOMER_CONTACTS,$ID,null,null,1,1);
$relation_setting["relext"] = null;
$gresult = get_gresult(CONTACT_TAB,1,null,null,$relation_setting,array(CONTACT_TAB=>array(CONTACT_TAB_LASTNAME,CONTACT_TAB_NAME)));
$result_name = $gresult[CONTACT_TAB][CONTACT_LASTNAME][0];
$result_firstname = $gresult[CONTACT_TAB][CONTACT_NAME][0];