Your-pMF
     registrieren     benutzer     suche     team     kalender     hilfe     index    
Chat     downloads     link us     gästebuch     supportforum    
 

Anzahl der neuen Beiträge auslesen

original Thema anzeigen

 
06.04.05, 12:59:22

hama

Hallo Ich habe nochmals eine Bitte: Auf der Startseite meiner Website möchte ich die Anzahl der neuen Beiträge seit dem letzten Besuch im Forum ausgeben. Bei der Anzahl Mitglieder oder bei der Anzahl neuer PN's usw. habe ich es (mit Hilfe) geschafft, aber bei den neuen Beiträgen komme ich nicht weiter. Ich habe erfahren, dass gewisse Zeilen von der search.php (bei Zeile 217, wo die Abfrage zusammengebaut wird) übernommen werden können. Ziel ist es nachher, dass ich beispielsweise mit $new_posts die Anzahl ausgeben werden kann. So sieht es bei "Total Beiträgen" aus (als Beispiel, funktioniert): [PHP] // total posts $total_posts = implode('', $_board->fetch_first('SELECT SUM(`posts`) FROM '.$TB_BOARD_FORUM));[/PHP] So sieht es bei den "Neuen PN's" aus (als Beispiel, funktioniert): [PHP]// Neue Private Nachrichten $_user['pn_new'] = 0; if (is_numeric($_user['id'])) { $_user['pn_new'] = intval( implode('', $_board->fetch_first('SELECT COUNT(*) FROM '.$TB_BOARD_MSG.' WHERE to_id = '.$_user['id'].' AND `del` <> 1 AND view = 0')));[/PHP] Und eben hierzu suche ich die Lösung: [PHP]// Neue Forum-Posts $new_posts; if;[/PHP] Danke für ein bisschen Hilfe und eine gute Zeit :) hama
06.04.05, 13:02:26

BugHunter2k

[php] $result=$_db->query_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE postdate > '.$user['lastvisit']); $newposts=$result['posts']; [/php] das $user['lastvisit']; musst du evtl ncoh ändern, da muss die timestamp vom letzten besuch hin (steht irgendwo in $user oder $_user oder so.
06.04.05, 13:07:59

hama

Im search.php ist bei neuen Beiträgen PMF_TIME angegeben. Muss ich etwas von dieser Zeile einbauen? [PHP] } elseif ($get == 'new') { $where = 'p.`post_date` > '.(($_user['last_login']) ? $_user['last_login'] : PMF_TIME);[/PHP] Thanks hama
06.04.05, 13:09:25

BugHunter2k

$_user['last_login'] das schaut gut
06.04.05, 13:55:35

hama

Geht noch nicht: Habe das eingebaut: [PHP] // total new posts $result=$_db->query_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE postdate > '.$user['last_login']); $newposts=$result['posts']; [/PHP] und gebe aus mit $newposts Wenn's keine neuen Posts hat, sollte 0 ausgegeben werden. Das bringe ich auch nicht hin. Es kommt eh noch gar keine Ausgabe. :( Gruss :) hama
06.04.05, 13:57:58

BugHunter2k

postdate ist falsch, das muss post_date heissen
06.04.05, 14:19:39

hama

Fatal error: Call to undefined function: query_first() in /home/httpd/vhosts/orst.ch/httpdocs/head.php on line 48 Line 48: [PHP] $result=$_db->query_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE post_date > '.$user['last_login']);[/PHP] :(
06.04.05, 14:22:20

BugHunter2k

stimmt, das ding heisst fetch_first... [php] $result=$_db->fetch_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE post_date > '.$user['last_login']); [/php]
06.04.05, 14:38:29

hama

[PHP]// total new posts $result=$_db->fetch_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE post_date > '.$user['last_login']); $newposts=$result['posts']; [/PHP] gibt auf der Startseite die Fehlermeldung: SQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE post_date > LIMIT 0,1' at line 1 Tja, leider kann ich nichts anderes als ausprobieren. Ist aber kein Stress, wenn's nicht geht ... Die Freude ist dann umso grösser, wenn plötzlich keine Fehlermeldung mehr kommt. Gruss hama
06.04.05, 15:15:27

BugHunter2k

[php] // total new posts $result=$_db->fetch_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE post_date > '.$_user['last_login']); $newposts=$result['posts']; [/php]
06.04.05, 17:47:58

hama

[PHP]// total new posts $result=$_db->fetch_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].' WHERE post_date > '.$_user['last_login']); $newposts=$result['posts']; [/PHP] gibt: SQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE post_date > 1112791826 LIMIT 0,1' at line 1 SELECT count(*) as posts FROM WHERE post_date > 1112791826 LIMIT 0,1 Geht noch nicht. Aufgeben? :( Gruss hama
06.04.05, 17:55:19

BugHunter2k

[php] $result=$_db->fetch_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].'post WHERE post_date > '.$_user['last_login']); [/php]
06.04.05, 18:00:02

hama

Gibt leider ... SQL Error: Table 'oshomepage.post' doesn't exist SELECT count(*) as posts FROM post WHERE post_date > 1112795912 LIMIT 0,1
06.04.05, 18:01:47

BugHunter2k

Wo steht denn das ding ? in der index.php ? sach mal die stelle, es scheint so, als ob die variable $_cfg fehlt
06.04.05, 18:30:14

hama

Die Abfrage schreibe ich in die head.php meiner website. Brauchst du mehr oder andere Informationen?
06.04.05, 18:31:40

BugHunter2k

aan welche stelle in der head ? zeilennr. bzw. die zeilen davor oder danach
06.04.05, 18:33:35

hama

Das ist der Anfang der head.php: [PHP]### Session Include include($_cfg['MAIN'].'/lib/sessions.inc.php'); # # ### Template Classe includen include($_cfg['MAIN'].'/lib/tpl.inc.php'); $_style = new pmf_style($_cfg['STYLE']); # # ### neue Private Nachrichten ? && Anzahl Members $_user['pn_new'] = 0; if (is_numeric($_user['id'])) { $_user['pn_new'] = intval( implode('', $_board->fetch_first('SELECT COUNT(*) FROM '.$TB_BOARD_MSG.' WHERE to_id = '.$_user['id'].' AND `del` <> 1 AND view = 0'))); // members $members = implode('', $_board->fetch_first('SELECT COUNT(*) FROM '.$TB_BOARD_USER)); // total posts $total_posts = implode('', $_board->fetch_first('SELECT SUM(`posts`) FROM '.$TB_BOARD_FORUM)); // total hits $total_hits = implode('', $_board->fetch_first('SELECT SUM(`views`) FROM '.$TB_BOARD_TOPIC));[/PHP] Gruss hama
06.04.05, 18:42:09

hama

Das ist die head.php inkl. // total new posts ($result ... ist auf Zeile 47): [PHP]fetch_first('SELECT COUNT(*) FROM '.$TB_BOARD_MSG.' WHERE to_id = '.$_user['id'].' AND `del` <> 1 AND view = 0'))); // members $members = implode('', $_board->fetch_first('SELECT COUNT(*) FROM '.$TB_BOARD_USER)); // total posts $total_posts = implode('', $_board->fetch_first('SELECT SUM(`posts`) FROM '.$TB_BOARD_FORUM)); // total hits $total_hits = implode('', $_board->fetch_first('SELECT SUM(`views`) FROM '.$TB_BOARD_TOPIC)); // total new posts $result=$_db->fetch_first('SELECT count(*) as posts FROM '.$_cfg['DB_PREFIX'].'post WHERE post_date > '.$_user['last_login']); $newposts=$result['posts']; // new Gallery DB $_gallery = new db($_cfg['DB_SERVER'], $_cfg['DB_GALLERY_USER'], $_cfg['DB_GALLERY_PASS'], $_cfg['DB_GALLERY_NAME']); // gallery_pics $gallery_pics = implode('', $_gallery->fetch_first('SELECT COUNT(*) FROM cpg130_pictures AS p, cpg130_albums AS a WHERE p.aid = a.aid AND a.category <> 9')); // gallery hits $gallery_hits = implode('', $_gallery->fetch_first('SELECT SUM(`hits`) FROM cpg130_pictures AS p, cpg130_albums AS a WHERE p.aid = a.aid AND a.category <> 9')); // gallery members $gallery_members = implode('', $_gallery->fetch_first('SELECT COUNT(user_id) FROM cpg130_users')); // calendar $result = $_board->query('SELECT id, subject, typ, UNIX_TIMESTAMP(event_date) AS date FROM '.$TB_BOARD_CALENDAR.' WHERE event_date >= DATE_ADD(NOW(), Interval 0 day) AND event_date <= DATE_ADD(NOW(), Interval 100 day) AND (typ=0 OR (user_id = '.intval($_user['id']).' AND typ=1)) ORDER BY `event_date` LIMIT 10'); $liste = array(); while($event = $_board->fetch_array($result)) { if ($event['typ']){ $tmp=''.$event['subject'].''; } else { $tmp=$event['subject']; } $liste[] = '' .$tmp.' ('.date('d.m.',($event["date"])).')'; } $event_list = (count($liste) > 0) ? implode('
', $liste) : ''; } ?>[/PHP]
06.04.05, 18:42:15

BugHunter2k

ok, so sollte das dann klappen (hoff ich zumindest mal) [php] $new_posts = implode('', $_board->fetch_first('SELECT COUNT(*) FROM '.$TB_BOARD_POST.' WHERE post_date > '.$_user['last_login'])); [/php] PS:welceh forenverison setzt du ein, das sieht für mcih nach einer 3er version aus.
06.04.05, 18:45:10

hama

Zu sehen auf [URL="www.orst.ch "]www.orst.ch[/URL] (mit test test auf Startseite anmelden) Dann sollte die Anzahl neuer Beiträge links oben in der zweiten Zeile erscheinen (0 oder eben die entsprechende Anzahl). Gruss hama
 
 
Powered by: phpMyForum 4.2.1 © Christoph Roeder
SQL Error