Seite 1 von 1

Zeitmanagement - Artikel wird nicht online geschaltet

Verfasst: Di 29. Apr 2003, 10:46
von pez
Hallo,

Ich hoffe Ihr könnt mir weiterhelfen mit der Erweiterung "Zeitmanagement".
Habe die Erweiterung lt. Anleitung in das System eingefügt - funkt. soweit alles - die Datei cron.txt wird mit dem jeweiligem Datum geschrieben und auch die Datenbankeinträge (Startdatum und Enddatum) werden geschrieben, nur wird der jeweilige Artikel nicht zum eingetragenen Datum Online geschaltet.
(Testumgebung Wamp auf W2k)

Wenn die Seite mit eingtragenem Datum das erste mal aufgerufen wird erhalte ich noch zusätzlich folgende Fehlermeldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\rum\admin\inc\cron.php on line 23

Aktualisiere ich dann diese Seite im Browser verschwindet die Fehlermeldung, jedoch bleibt die Seite offline

woran kann es liegen???

Verfasst: Di 29. Apr 2003, 12:25
von idea-tec
was für eine abfrage auf welche tabelle und welches feld steht in deiner cron.php über zeile 23?

Verfasst: Di 29. Apr 2003, 13:56
von pez
habe die abfrage so belassen wie sie ist, alle felder aus der Tabelle management

Code: Alles auswählen

//tabelle management lesen
			$query = "select * from $cfgTab_management";
			$res   = mysql_query($query);
			$anz   = mysql_num_rows($res);
			$i     = 0;
			while ($i < $anz) ... 

Verfasst: Di 29. Apr 2003, 14:19
von idea-tec
das sieht aus, als wenn du keine einträge in der management-tabelle hast

Verfasst: Di 29. Apr 2003, 14:54
von pez
hier ein kleiner auszug aus meiner tabelle- management wie man erkennen kann ist in der zweiten zeile ein artikel mit start und enddatum vorhanden
  • manid idcatside artid lanid cat author datestart dateend cache is_start on_tage
    1 1 1 2 5 admin 0000-00-00 00:00:00 0000-00-00 00:00:00 0 1 0
    2 2 2 2 1 admin 2003-04-30 00:00:00 2003-05-30 00:00:00 0 1 0
    3 3 3 2 6 admin 0000-00-00 00:00:00 0000-00-00 00:00:00 0 1 0
dieser wird aber trotzdem nicht angezeigt,

gibt es eine aktuellere version des zeitmanagements als die die von der contenido seite zu beziehen ist ???

Verfasst: Di 29. Apr 2003, 17:15
von idea-tec
tu uns allen nen gefallen ... füge folgende Zeilen nach $res = mysql_query... ein:

Code: Alles auswählen

$test = mysql_error();
echo $test;
und poste das Ergebnis hier

Verfasst: Mi 30. Apr 2003, 10:56
von pez
jetzt fange ich bald an mir selbst zu zweifeln an,

habe die zeilen eingefügt wie du gesagt hast - folgende meldung

No Database Selected
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\rum\admin\inc\cron.php on line 24

so habe im zuge dessen alle einträge welche mit con_management bzw. $cfgTab_management zu tun haben geprüft - ohne erfolg, wo wird die connection zu der datenbank aufgebaut ??? und warum erscheint diese meldung dann nicht mehr wenn ich aktualisiere ???

vielen dank für eure geduld

Verfasst: Mi 30. Apr 2003, 13:16
von hk-cons
Hi
Böses Foul .. Du hast keine Datenbank ausgewählt ... :oops:
Wahrscheinlich wird die inc/config.php nicht aufgerufen, denn da sind alle DB-Angaben drinne. Und beim zweiten Mal iwrd eventuell auf irgendeineWeise diese Datei noch gelesen (anderes Script??)

Der Auruf sollte so geschehen:

Code: Alles auswählen

include($ContenidoPath."inc/config.php");

Gruß Harald :)

Verfasst: Mi 30. Apr 2003, 14:00
von pez
das is es leider auch nicht da die datei inc/config.php aufgerufen werden muß da ja die restliche seite einwandfrei funktioniert (das stört mich ja gerade, wenn nämlich keine einzige seite gehen würde wäre es klar) und die datei cron.php wird in der front_content.php ja über ein include eingefügt,

z.B.:

Code: Alles auswählen

include("config.php");
include($ContenidoPath."inc/config.php");
include($ContenidoPath.$cfgPathInc."cfg_sql.inc.php");
include($ContenidoPath.$cfgPathInc."cron.php");
include($ContenidoPath.$cfgPathInc."cfg_language_".$language.".inc.php");
include($ContenidoPath.$cfgPathInc."fnc_general.inc.php");

Verfasst: Mi 30. Apr 2003, 18:18
von idea-tec
ersetze im aufruf mal die variable für die tabelle direkt mit dem tabellennamen also $cfgblablabla durch "con_management" ersetzen

Verfasst: Mi 30. Apr 2003, 19:26
von hk-cons
hmmm
ist in der
include($ContenidoPath.$cfgPathInc."fnc_general.inc.php");
die management-Datei verarztet?
Aber das zielt ja in Richtung von idea-tec .... 8)
Aber by mysql sind die Errormessages meistens sehr zutreffend, also ist keine Database ausgewählt.
Funzen sollte es so:
Die Zugangsdaten sind in der contenido/inc/config.php und der Zugang wird über die conlib/db_mysql.inc (funktion connect) aufgebaut.
Mittels
$db = new DB_Contenido;
wird eine neue class definiert
Kann es also sein, dass diese Zeile irgendwo nicht aufgerufen wird?? (vielleicht Deine cron.php .) :twisted:
Vielleicht hilfts Dir etwas weiter :lol:

Gruß Harald

Verfasst: Mo 5. Mai 2003, 11:06
von pez
hi
habe nun alle $cfgTab_management ausgetauscht auf con_management -> ohne erfolg

habe mir contenido 4.2 neu installiert, nur mit der demoseite und der Zeitmanagementerweiterung - jedoch bekomme ich die gleichen Fehlermeldungen bzw. die Seite wird nicht online geschaltet,

seitens Backendbereich müsste aber alles ok sein, da die Daten in die con_management und con_side_lang eingetragen werden

@hk-cons
was meinst du mit
ist in der
include($ContenidoPath.$cfgPathInc."fnc_general.inc.php");
die management-Datei verarztet?
muß ich die datei fnc_general.inc.php auch bearbeiten ???

Verfasst: Mo 5. Mai 2003, 12:33
von hk-cons
Hallo pez

sorry ich meine
include($ContenidoPath.$cfgPathInc."cfg_sql.inc.php");
da stehen ja die Tabellen drin ...

aber hast du schon in die errorlog.txt geschaut?
Du hast definitv keine Database ausgewählt, es muss also irgendwie der Aufruf
$db = new DB_Contenido;
fehlen ....

Gruß Harald

Verfasst: Di 6. Mai 2003, 13:39
von pez
So, habe nun das Problem gelöst,...
falls es jemandem hilft poste ich hier den geänderten Code der Datei cron.php - die restl. Dateien habe ich unverändert lassen

Code: Alles auswählen

<?
include($ContenidoPath."inc/cron_func.php");

global $cfgTab_cat_side;
global $cfgTab_side_lang;

// prüfen ob cron heute schon gelaufen ist
$fp = fopen($ContenidoPath."inc/cron.txt","r");

if ($fp)
{
	while (!feof($fp))
	{
		$datum = fgets($fp, 20);
		//tagesdatum ermitteln
		$today = date("Ymd");
		if ($datum < $today)
		{

		//*** aenderung beginn (06.05.2003/sec)***
			//tabelle management lesen
			$query = "select * from $cfgTab_management";
			$db = new DB_Contenido;
			$res   = $db->query($query);
			$anz   = $db->num_rows($res);
			$db->next_record();
		//*** aenderung ende (06.05.2003/sec)***
			
			$i     = 0;
			while ($i < $anz)
			{
			
		//*** aenderung beginn (06.05.2003/sec)***
				$manid     = $db->f("manid");
				$artid     = $db->f("artid");
				$lanid     = $db->f("lanid");
				$is_start  = $db->f("is_start");
				$on_tage   = $db->f("on_tage");
				$datestart = $db->f("datestart");
				$startjj   = substr($datestart, 0, 4);
				$startmm   = substr($datestart, 5, 2);
				$starttt   = substr($datestart, 8, 2);
				$startdate = $startjj . $startmm . $starttt; 

				$dateend   = $db->f("dateend");
				$endjj     = substr($dateend, 0, 4);
				$endmm     = substr($dateend, 5, 2);
				$endtt     = substr($dateend, 8, 2);
				$enddate   = $endjj . $endmm . $endtt;  
		//*** aenderung ende (06.05.2003/sec)***

				
				//nur artikel bearbeiten, die start- oder endedatum gefüllt haben
				if ($startdate != 0 || $enddate != 0)
				{

					//artikel online schalten und als startartikel definieren, wenn startdatum >= heute
					if ($startdate != 0)
					{
				//*** aenderung beginn (06.05.2003/sec)***
						if (($startdate <= $today && $enddate >= $today)
						|| ($startdate <= $today && $enddate == 0))
				//*** aenderung ende (06.05.2003/sec)***
						{
							sidelangOnline($artid, $lanid);
							if ($is_start == "1")
								catsideStart($artid);
						}
					}
					//artikel offline schalten wenn endedatum < heute
					if ($enddate != 0)
					{
						if ($enddate < $today || $startdate > $today)
						{
							sidelangOffline($artid, $lanid);
							catsideNostart($artid, $lanid);
							//Artikel mit neuem Datum in die Management-Tabelle einfügen
							if ($on_tage > 0 && $startdate < $today)
								neuesDatum ($manid, $datestart, $dateend, $on_tage);
						}
					}
				}
				$i++;
			//*** aenderung beginn (06.05.2003/sec)***
				$db->next_record();
			//*** aenderung ende (06.05.2003/sec)***
			}

			//*** aenderung beginn (06.05.2003/sec)***
				$db->free();
			//*** aenderung ende (06.05.2003/sec)***


		}
		else
		{
//			echo "Cron wurde heute schon ausgeführt<br>";
		}
	}
	fclose($fp);

	//neues Datum in die Datei eintragen
	$fp = fopen($ContenidoPath."inc/cron.txt","w+");
	fwrite($fp, $today);
	fclose($fp);
}
else
{
	echo "Datei wurde nicht gefunden";
}

?>




Vielen Dank nochmals für die Hilfe

---------------------------------------

Sorry, habe nun den obrigen Quellcode mit Comments versehen und nun sollte es ersichtlich sein, was ich geändert habe

Gruß Pez
:wink:

Verfasst: Di 6. Mai 2003, 13:47
von idea-tec
geänderter source ist ja gut und schön ...
sollen die leute im "Kaffeesatz" lesen WAS geändert wurde