vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   Need help with database coding... (https://vborg.vbsupport.ru/showthread.php?t=51101)

thuffner 04-02-2003 07:12 AM

Need help with database coding...
 
I am trying to put a "last post" feature on the index page of my website. I found this code on the site, but it doesn't seem to be working properly, as it just shows a random post from a random forum. Any ideas on how to fix the problem?

(The stars are filled in with my correct database info)

Here's the code:

<?php
$servername= "***";
$dbusername = "***";
$dbpassword ="***";
$dbname= "***";
$forumlocation= "***";

mysql_connect("***", "***", "***") or die("Couldnt find MYSQL!");
mysql_select_db("***") or die ("Couldnt find DB!");

$cekilen_mesleki=mysql_query("
select threadid, title, postusername, postuserid, dateline, forumid
from thread WHERE
visible= '1' AND (forumid='5' OR forumid='7' OR forumid='6' OR forumid='8' OR forumid='20' OR forumid='10' OR forumid='11' OR forumid='12' OR forumid='13' OR forumid='14' OR forumid='15' OR forumid='30' OR forumid='31' OR forumid='23' OR forumid='29' OR forumid='24' OR forumid='22' )
order by dateline ASC LIMIT 1
");

if (mysql_error()) {echo "mySQL error:"; echo mysql_error(); exit;}
$mesleki_number=mysql_numrows($cekilen_mesleki); //number of news fetched
if ($mesleki_number<=0) {echo "<tr><td bgcolor=\"#FFFFFF\">No New Message!</td></tr>";}//no news on database!
else {
$ii=1;
while ($gelen= mysql_fetch_row($cekilen_mesleki))
{
if ($ii % 2) {$tdcolor="#FFFFFF";} else {$tdcolor="#eeeeee";}
echo '<td><td bgcolor="'.$tdcolor.'"><font size=1 face=verdana><a href="'.$forumlocation.'showthread.php?s=&threadid ='.$gelen[0].'">'.$gelen[1]."</a><br>Last forum post by: <i>".$gelen[2]."</i> ";

echo "</td></tr>";
$ii++;
}

} //else kapa parantez
?>

Or is there another hack that is better? I have seen a hack for this in a large collection of hacks, but never as a single hack.

Thanks for any help!

thuffner 04-02-2003 04:40 PM

Can anyone help?

I figured out that code only shows the post in the forum with the highest thread number...Anyone know how to change it to the topic with the latest reply?

JulianD 04-02-2003 07:10 PM

Change this:

PHP Code:

$cekilen_mesleki=mysql_query("
select threadid, title, postusername, postuserid, dateline, forumid
from thread WHERE
visible= '1' AND (forumid='5' OR forumid='7' OR forumid='6' OR forumid='8' OR forumid='20' OR forumid='10' OR forumid='11' OR forumid='12' OR forumid='13' OR forumid='14' OR forumid='15' OR forumid='30' OR forumid='31' OR forumid='23' OR forumid='29' OR forumid='24' OR forumid='22' )
order by dateline ASC LIMIT 1
"
); 

to this

PHP Code:

$cekilen_mesleki=mysql_query("
  SELECT threadid, title, postusername, postuserid, dateline, forumid
  FROM thread
  WHERE visible='1'
  ORDER BY lastpost DESC
  LIMIT 1
"
); 

However, that code won't check for permissions, so you must include something like AND (forumid='x' OR forumid='y' OR...) in the query, so you only get the last post on your desired forums.

filburt1 04-02-2003 07:15 PM

Code:

...AND forumid IN (comma-delimited list of forumids)...

thuffner 04-02-2003 09:49 PM

Wow! It works great now!

Two more questions...Is there any way to get the date and time posted as well? And what about the post-er, not the thread starter?

Thanks again!

JulianD 04-02-2003 09:58 PM

yeah, in the query change postusername to lastposter.

JulianD 04-02-2003 10:05 PM

and for the last post date, it's a little complicated but here is it:

replace in the query dateline to lastpost.

Now here's the tricky part.

Put this

Code:

$gelen[4] = date("m-d-y",$gelen[4]);
Above this:

Code:

if ($ii % 2) {$tdcolor="#FFFFFF";} else {$tdcolor="#eeeeee";}
And then you can use $gelen[4] anywhere in the script and you will get the last post date.

Hope this works.

thuffner 04-02-2003 10:44 PM

It works great! Is there any way to get the actual time on there as well? (Sorry to be so pressing, but I really appreciate this...)

JulianD 04-02-2003 11:34 PM

OK it's easy

Just below

$gelen[4] = date("m-d-y",$gelen[4]);

put this

$timenow = date("m-d-y",time());

and now you can use $timenow anywhere on the script.

filburt1 04-03-2003 12:22 AM

You should use vbdate instead so it uses the timezone settings.


All times are GMT. The time now is 09:24 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01664 seconds
  • Memory Usage 1,734KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete