Pagina 1 van 1

nieuws 1x?

Geplaatst: 28 nov 2004, 10:03
door Lucky Luke
scroll naar beneden

Geplaatst: 28 nov 2004, 10:10
door WebSiteNet
Heel simpel:
//gastenonline
$gasten = mysql_query("SELECT * FROM phpbb_sessions WHERE session_user_id = '-1'");
$gastenonline = mysql_num_rows($online);
Je hebt de verkeerde vars gebruik. Dit script zal niet goed werken omdat er veel meer sessies zijn dat echte bezoekers. Het gebeurt heel vaak dat een ip meerdere sessies heeft. Het is eerder regel dan uitzondering.

Geplaatst: 28 nov 2004, 11:34
door Lucky Luke
Ow DOM!
lol! :P

en hoe kan ik beter een online menu maken dan?

Geplaatst: 28 nov 2004, 13:45
door WebSiteNet
Doe een ip check. Maak een array, en zet er elk ip in dat je tegenkomt. Als het ip er al staat ga je door. En aan het eind tel je ip's!

Geplaatst: 28 nov 2004, 14:30
door mosymuis
WebSiteNet schreef:Doe een ip check. Maak een array, en zet er elk ip in dat je tegenkomt. Als het ip er al staat ga je door. En aan het eind tel je ip's!
Kan ook al direct in SQL, mbv COUNT en GROUP BY. :wink:

Geplaatst: 30 nov 2004, 16:52
door Lucky Luke
Ik heb nu dit:

Code: Selecteer alles

<?php
include_once("config.php");

//gasten online
$gastensql = mysql_query("SELECT * FROM phpbb_sessions WHERE session_user_id = '-1'");
$gastenarray = array();
$i = 0;
while($row = mysql_fetch_array($gastensql)) {
        if(!in_array($row['session_ip'], $gastenarray)) {
                $gastenarray[$i] = $row['session_ip'];
                $i++;
        }
}
$gastenonline = count($gastenarray);

//leden online
$ledensql = mysql_query("SELECT * FROM phpbb_sessions WHERE session_user_id != '-1'");
$ledenarray = array();
$i = 0;
while($row = mysql_fetch_array($ledensql)) {
        if(!in_array($row['session_ip'], $ledenarray)) {
                $ledenarray[$i] = $row['session_ip'];
                $i++;
        }
}
$ledenonline = count($ledenarray);

//totaal online
$totaalsql = mysql_query("SELECT * FROM phpbb_sessions");
$totaalarray = array();
$i = 0;
while($row = mysql_fetch_array($totaalsql)) {
        if(!in_array($row['session_ip'], $totaalarray)) {
                $totaalarray[$i] = $row['session_ip'];
                $i++;
        }
}
$totaalonline = count($totaalarray);

?>
<table class='tablenobrdr' cellspacing='0' width='95%' background='/images/hyrulec_menu_right.gif'>
<tr background="/images/hyrulec_menu_left.gif">
          <td background="/nieuws/themes/<? echo $config['theme']; ?>/images/background-green.png"><font class="captiontext">Online</font></td></tr>
          <tr>
          <td>
          <?
echo "Er zijn in totaal ".$totaalonline." bezoekers online. Waarvan ".$gastenonline." gasten en ".$ledenonline." leden.<br><a href='".$phpbb_root_path."viewonline.php'>Meer informatie";
?>
</td></tr></table>
Alleen als ik naar viewonline.php ga krijg hele andere info...

Moet ik dan ook zo'n check doen of hij ouder is dan 5 min?

Geplaatst: 30 nov 2004, 16:56
door mosymuis
Lucky Luke schreef:hele andere info...
...?

Geplaatst: 30 nov 2004, 20:48
door Lucky Luke
Nee hij klopt nu al :)

Ik moest inderdaad die check doen of hij langer dan 5 min. bestaan doen. Nu klopt die helemaal :)

MAAR, ik heb een nieuw probleem :P

Ik probeer mijn nieuws systeem ook in templates te maken met de template engine van phpBB.

Ik heb dit stukje:

Code: Selecteer alles

$page_title = "Nieuws";
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
//Set up news
Lijn 28 ->  $sql = mysql_query("SELECT * FROM nieuws WHERE actief='actief' ORDER BY id DESC LIMIT 5") or die(mysql_error());
while($list = mysql_fetch_object($sql)) {
        $sql = mysql_query("SELECT * FROM nieuwsreacties WHERE nid=".$list['id']);
        lijn 30 ->   $aantal_reacties = mysql_num_rows($sql);
        $template->assign_block_vars('news', array(
                   'NEWS_TITLE' => $list['titel'],
                   'NEWS_AUTHOR' => $list['auteur'],
                   'NEWS' => $list['nieuwsbericht'],
                   'COMMENTSLINK' => "<a href='../nieuws/leesnieuws.php?nid=".$list['id'].">Reacties(".$aantalreacties.")</a>",
                   'PRINT_IMG' => "<a href='../nieuws/print.php?id=".$list['id']."><img src='../nieuws/images/printer.gif' alt=''></a>",
                   'EMAIL_IMG' => "<a href='../nieuws/mail.php?id=".$list['id']."><img src='../nieuws/images/printer.gif' alt=''></a>",
                   'NEWS' => $list['datum']
                   ));
}
maar krijg deze error:
http://hyrulecastle.rctlucky.nl/nieuws/news_test.php

Ik snap nu echt niet wat de fout is...

Geplaatst: 01 dec 2004, 20:04
door Lucky Luke
Niemand? :(

Geplaatst: 03 dec 2004, 17:21
door Donny_nl
ik neem aan dat je deze fouten bedoelt:

Code: Selecteer alles

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/local/psa/home/vhosts/rctlucky.nl/subdomains/hyrulecastle/httpdocs/nieuws/news_test.php on line 30

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/local/psa/home/vhosts/rctlucky.nl/subdomains/hyrulecastle/httpdocs/nieuws/news_test.php on line 28
Deze fouten geven aan dat de query die je hebt opgegeven helemaal leeg was. Waarschijnlijk klopt de query niet of er zijn geen goede resultaten gevonden. controleer je query dus.

Geplaatst: 04 dec 2004, 01:27
door JdeBoer
"supplied argument is not a valid MySQL result" duidt aan dat er een fout zit in je query en geeft daarom een lege string.

Als je windows gebruikt zou je MySQL-Front kunnen gebruiken om je query daarin te testen.

TIP:
een stukje eruit 'knippen' en dat testen helpt je ook vaak verder het probleem duidelijker te maken.
doe het stapje voor stapje.

Geplaatst: 04 dec 2004, 16:35
door Lucky Luke
Nieuw Probleem: :P

Hoe kan je de bbcode functie van phpbb gebruiken in mijn nieuws systeem?

en er wordt maar 1 nieuws bericht weergeven terwijl ik LIMIT 5 heb gedaan..

hoe komt dat?

http://hyrulecastle.rctlucky.nl/forum/news.php

Geplaatst: 04 dec 2004, 18:41
door mosymuis
Lucky Luke schreef:Hoe kan je de bbcode functie van phpbb gebruiken in mijn nieuws systeem?
Daar gebruik je de functies make_bbcode_uid(), bbencode_first_pass() en bbencode_second_pass() uit includes/bbcode.php voor. Bekijk bijvoorbeeld privmsg.php eens om te zien hoe je ze gebruikt, zowel bij het opslaan als weergeven. Je hebt er ook een nieuw varchar(10) database veld voor nodig.

Lucky Luke schreef:en er wordt maar 1 nieuws bericht weergeven terwijl ik LIMIT 5 heb gedaan..

hoe komt dat?
Nogal lastig te zeggen, dit kan met je query of database inhoud te maken hebben.

Geplaatst: 04 dec 2004, 20:55
door Lucky Luke
Ik heb nu 4 nieuws berichten in me DB zitten...
Maar toch krijg ik 1 nieuwsbericht te zien. en 1x niet allemaal dubbel..
als ik naar andere mods kijk moet het toch goed zijn?

Geplaatst: 05 dec 2004, 14:30
door Lucky Luke
YEAH het is me gelukt 8)

Heb ff gekeken hoe ze het in viewtopic gedaan hebben :D