Aktualisierungsdatum der Seite ausgeben

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Aktualisierungsdatum der Seite ausgeben

Post by juergen »

Ich hab mal ein wenig gegooglet ... schmeiss mal die auskommentierten Sachen alle raus, wenns dann geht dann liegts daran dass die regulären Ausdrücke auch auskommentiert mitgelesen werden ...
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: Aktualisierungsdatum der Seite ausgeben

Post by flip-flop »

Der oben gezeigte Fehler ist behoben. (Änderung der Abfrage ob Werte in der DB gefunden wurden).

Fehler bei Ergebnis = '--';

Code: Select all

	$my_date = (isset($result['0']['max_article_tstamp'])) ? $result['0']['max_article_tstamp']: '--';
Geändert nach:

Code: Select all

	$my_date = (isset($result['0']['max_article_tstamp'])) ? $result['0']['max_article_tstamp']: time();
Nun wird im Fehlerfall zumindest ein verwertbares Datum generiert (time().
Dieser Fehler war eine Folge des Grundsatzproblems auf diesem Server: Es werden keine Werte in der DB gefunden.

Also die DB-Abfrage scheint auf diesem Account nicht zu funktionieren:

Code: Select all

	$sql  = "SELECT article_id, UNIX_TIMESTAMP(max(article_tstamp)) AS max_article_tstamp, ";
	$sql .= "article_begin AS article_livedate, ";
	$sql .= "article_end AS article_killdate ";
	$sql .= "FROM ".DB_PREPEND."phpwcms_article ar LEFT JOIN ".DB_PREPEND."phpwcms_articlecat ac ON ";
	$sql .= "ar.article_cid = ac.acat_id WHERE ";
	// Categorie settings -------------
	$sql .= "ac.acat_aktiv=1 AND ac.acat_public=1 AND ac.acat_trash=0 AND ";
	
	// category: "hide" or "visible when active" 
	$sql .= "ac.acat_hidden=0 AND ";		// "hide" or "visible when active"

	$sql .= "ac.acat_regonly=0 AND ";					// "visible for users logged on only"
	// Article settings ---------------
	$sql .= "ar.article_public=1 AND ar.article_aktiv=1 AND ";	

	// Article settings
	$sql .= "ar.article_deleted=0 AND ar.article_begin<NOW() ";
	$sql .= "AND IF(ac.acat_archive=1 AND ar.article_archive_status=1, 1, ar.article_end>NOW()) LIMIT 1";
	
	$result = _dbQuery($sql);
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Re: Aktualisierungsdatum der Seite ausgeben

Post by flip-flop »

Grundsatzproblems gelöst.

Einige DBs erlauben (noch) keine Unterabfrage direkt im SELECT Ausdruck "max(article_tstamp)". So etwas müsste dann mit einer separate Unterabfrage nach dem WHERE generiert wird.
Daher rührte der Fehler.

Das Script ist soweit abgeändert, dass zumindest DBs der Sorte 5.X abgefragt werden können. hierdurch entfällt die Möglichkeit andere Felder des getroffenen Artikels ausgeben zu können z.B. die ID des Artikels.
Für den hier geforderten Anwendungsfall ist dies jedoch nicht wichtig.

Code: Select all

	$sql  = "SELECT UNIX_TIMESTAMP(max(article_tstamp)) AS max_article_tstamp ";
	// Nur fuer MySQL Engines geeignet die auch im SELECT Unterabfragen unterstuetzen 
	// Only suitable for MySQL Engines that also support subqueries in SELECT statement
/*
	$sql .= ",article_id, ";
	$sql .= "article_begin AS article_livedate, ";
	$sql .= "article_end AS article_killdate ";
*/
	$sql .=	"FROM ".DB_PREPEND."phpwcms_article ar LEFT JOIN ".DB_PREPEND."phpwcms_articlecat ac ON ";
....
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
User avatar
Uwe367
Posts: 1207
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Aktualisierungsdatum der Seite ausgeben

Post by Uwe367 »

Mensch Knut....

1000 Dank.. :D
Ich weiß gar nicht was ich sagen soll...
Danke, Danke, Danke...
Post Reply