Seite 1 von 1

Artikelergänzung

Verfasst: Di 22. Nov 2005, 08:03
von Simone
Hallo, ich habe aus der letzten Version 4.4.5 die Artikelergänzung übernommen. Sie kommt an das Ende des Standard-Artikels, um aufzuzeigen, wer den Artikel erstellt hat.

Was ich nicht verstehe ist, warum im Code der Autor angefordert wird, aber de facto bei mir modifiedby ausgegeben wird.

INPUT
leer

OUTPUT

Code: Alles auswählen

<?php
$query = "SELECT B.author AS author,
A.created AS created,
C.realname AS realname
FROM
".$cfg["tab"]["art_lang"]." AS A,
".$cfg["tab"]["content"]." AS B,
".$cfg["tab"]["phplib_auth_user_md5"]." AS C
WHERE
A.idart = '$idart' AND
B.idartlang = A.idartlang AND
C.username = B.author
ORDER BY
A.created DESC";

$db->query($query);
$db->next_record();

$author = $db->f("author"); // loginname
$realname = $db->f("realname"); // realname
$created = strtotime($db->f("created"));
$created = date("d.m.Y",$created);

echo " <span class=\"small\">Dieser Artikel wurde zuletzt am $created von $realname bearbeitet.</span>";
?>
Kann einer der Profis sich das erklären?

Gruß und danke für alle Anregungen,

Simone

Verfasst: Di 22. Nov 2005, 09:09
von emergence
wieso erklären ?

wenn möchte jemand anstelle des realnames den login namen ausgeben möchte, kann er sich dann einfach der variable $author bedienen...
wenn du sie nicht haben möchtest, wirf sie raus aus dem code...

Verfasst: Di 22. Nov 2005, 09:47
von Simone
Sorry emergence, ich habe mich unklar ausgedrückt.

Ich dachte, der realname ist nur der Name des Benutzernamens (siehe Systemadministration, Benutzer einrichten).

Auch wenn ich im echo $author schreibe, kommt nur der modifiedby heraus. Das weiß ich zufällig, weil ich einen Artikel erstellt habe, und ein anderer noch ein Link zugefügt hat. da ist mir das aufgefallen.

Ich dachte author wäre immer der Ersterstellende und modifiedby der Zuletztgeänderte.

Simone

Verfasst: Di 22. Nov 2005, 09:54
von emergence
ach so

Code: Alles auswählen

B.author AS author
ersetzen durch

Code: Alles auswählen

A.author AS author
besser ?

Verfasst: Di 22. Nov 2005, 11:18
von Simone
emergence hat geschrieben:
besser ?

Jaaaaaaa!!!

ich habe dann noch das A.created in B.created umgetauscht, weil ich mir dachte, es kann bestimmt nicht zwei As geben.
Hier der vollständige Code, wenn man sagen will, daß XY den Artikel erstellt und AB ihn zuletzt bearbeitet hat.

Code: Alles auswählen

<?php
$query = "SELECT A.author AS author,
B.created AS created,
C.realname AS realname
FROM
".$cfg["tab"]["art_lang"]." AS A,
".$cfg["tab"]["content"]." AS B,
".$cfg["tab"]["phplib_auth_user_md5"]." AS C
WHERE
A.idart = '$idart' AND
B.idartlang = A.idartlang AND
C.username = B.author
ORDER BY
A.created DESC";

$db->query($query);
$db->next_record();

$author = $db->f("author"); // loginname
$realname = $db->f("realname"); // realname
$created = strtotime($db->f("created"));
$created = date("d.m.Y",$created);

echo " <span class="small">Dieser Artikel wurde am $created von $author erstellt und von $realname zuletzt bearbeitet.</span>";
?>
Was hat es mit dem A B C auf sich? Gibt es irgendwo eine Kurzbeschreibung?

Auf jeden Fall danke ich Dir!!!!

Simone :D

Verfasst: Di 22. Nov 2005, 11:28
von Dalamar
A, B und C sind in diesem Fall Aliase für DB-Tabellen. Sie dienen gemeinhin dazu, dass man übersichtlicheren SQL-Code schreiben kann und die Ansteuerung der DB-Spalten etwas vereinfacht wird (a.strasse statt adressen.strasse).

Schau einfach mal in die MySQL Documentation (www.mysql.com) unter AS.

Gruss,
Christian