Seite 2 von 6

Verfasst: 08.12.2006 19:21
von kolja
OK, die ersten codezeilen stehen,
aber so ganz funktioniert es noch nicht...

vielleicht findet ja einer einen offensichtlichen fehler

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path . './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

$gen_page_header = true;
$page_title = 'die nächsten n termine im calender';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

  $abfrage = "SELECT * FROM `".TOPICS_TABLE."` WHERE forum_id == '22' AND  topic_calendar_time != 'NULL' ORDER BYtopic_calendar_time ";
  if( !( $result = $db->sql_query($sql) ) )
   {
      message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
   }      

echo $abfrage;
echo "<br>";
echo $abfrage[topic_calendar_time];

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
angezeigt werden sollen erstmal alle topics (namen) aus dem forum "22" bei denen ein topic_calendar_time eintrag vorhanden ist
in den reihen die kein timestamp enthalten steht "NULL"

kolja

zu sehen hier: http://mona-davinci.de/phpbb/tcmanzeige.php

Verfasst: 08.12.2006 23:02
von Miriam

Code: Alles auswählen

  $abfrage = "SELECT * FROM `".TOPICS_TABLE."` WHERE forum_id == '22' AND  topic_calendar_time != 'NULL' ORDER BYtopic_calendar_time ";
// Wir wollten doch die neuesten 5?
  if( !( $result = $db->sql_query($sql) ) )
   {
      message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
   }     

echo $abfrage;
echo "<br>";
echo $abfrage[topic_calendar_time];
Autsch!

Erst belegt Du eine Varibale $abfrage mit einem Query, aber der zur DB geschickte heisst dann $sql?
Du bekommst einen Handle zurück ($result), aber Du wertest den garnicht aus....
Wir erwarten doch ein Array und das willst Du mit ECHO ausgeben?

Probiere es so:

Code: Alles auswählen

  $sql = "SELECT * FROM " . TOPICS_TABLE . " WHERE forum_id = 22 AND  topic_calendar_time IS NOT NULL ORDER BY topic_calendar_time DESC LIMIT 5";
  if( !( $result = $db->sql_query($sql) ) )
   {
      message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
   }
$abfrage = array();
  while ( $row = $db->sql_fetchrow($result) )
{
//Werte zuordnen	
$abfrage[]['ausgelesene_Werte'] = $row['ausgelesene_Werte'];
}
print_r($abfrage);
An der Wertezuordnung muss man noch etwas feilen. Aber prinzipiell sollte es so klappen.

Verfasst: 09.12.2006 03:51
von kolja
fertig :-)

http://mona-davinci.de/phpbb/tcmanzeige.php

danke für deine hilfe
template und erklärungen kommen morgen

kolja

Verfasst: 09.12.2006 10:23
von Miriam
Wieder was fertig.... :)

Verfasst: 09.12.2006 12:46
von kolja
äähh noch nicht ganz...

ich komme mit der template zuweisung nicht zurecht...

hab mit den kb artikel als vorlage genommen, aber so funktioniert es leider nicht:

Code: Alles auswählen

//Werte zuordnen   
	if ( $row['topic_calendar_time']  > $timestamp ) {
		$template->set_filenames(array(
		'body' => 'calnext.tpl'
		));
		for($i=1; $i<=5; $i++) {
		$template->assign_block_vars('zahlen', array( 
		'T_TITLE' => $row['topic_title'],
		'DATE' => date("d.m.Y",$row['topic_calendar_time']),
		));
}}}
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
schade..

kolja

Verfasst: 09.12.2006 13:19
von Miriam
Den Code hast Du zum Laufen gebracht?
'DATE' => date("d.m.Y",$row[topic_calendar_time]),
));
Und gewöhne Dir bitte an $row[topic_calendar_time] so zu schreiben $row['topic_calendar_time']. Das ändert im Moment nichts am Code als solches. Nur weil PHP topic_calendar_time als Index nicht kennt, wird dieser Wert intern in eine Zeichenkette umgewandelt. Das muss aber nicht immer klappen.
Und wer weiss, wie PHP6 darauf reagiert.

Verfasst: 09.12.2006 13:37
von kolja
:oops: ja der code lief so :oops:

ich hatte mir das von der timestamp ausgabe abgeschaut:

Code: Alles auswählen

date("d.m.Y",$timestamp)
und ne ausgabe über echo lief ja auch genau so wie ich wolllte,
nur die template übergabe klappt immer noch nicht

kolja

p.s. code oben ist aktualisiert

Verfasst: 09.12.2006 14:11
von Miriam
Na wenn Du es so nicht hinbekommst, dann schreibe es vorher in eine Variable und weise es dann in den Templatevariablen zu.

Aber ich sehe gerade, dass die SQL Abfrage Schrott ist....
Du wolltest doch nicht die 5 neuesten, sondern die 5 nächsetn kommenden Ereignisse haben. Oder?

Verfasst: 09.12.2006 14:15
von kolja
ok das mit dem "umweg" über die variable werd ich mal versuchen
was macht denn das für einen unterschied ??

wg SQL

ja ich hab sie etwas angepasst :wink:
das ist der teil bis zur ausgabe:

Code: Alles auswählen

$timestamp = time();
  $sql = "SELECT * FROM " . TOPICS_TABLE . " WHERE forum_id = 22 AND  topic_calendar_time IS NOT NULL ORDER BY topic_calendar_time";
  if( !( $result = $db->sql_query($sql) ) )
   {
      message_die(CRITICAL_ERROR, 'Kann Themen Informationen nicht laden!', '', __LINE__, __FILE__, $sql);
   }
$abfrage = array();
while ( $row = $db->sql_fetchrow($result) ){

Verfasst: 09.12.2006 14:26
von kolja
also mit dem umweg klappt das leider auch nicht:
//Werte zuordnen
if ( $row['topic_calendar_time'] > $timestamp ) {
$template->set_filenames(array(
'body' => 'calnext.tpl'
));

$titel = $row['topic_title'];
$datum = date("d.m.Y",$row['topic_calendar_time']);

for($i=1; $i<=5; $i++) {
$template->assign_block_vars('zahlen', array(
'T_TITLE' => $titel,
'DATE' => $datum
));
}}}
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
kolja, der so langsam verzweifelt...