vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   SQL Query based on last 48 hours? (https://vborg.vbsupport.ru/showthread.php?t=178131)

PhilMcKrackon 05-04-2008 09:38 PM

SQL Query based on last 48 hours?
 
I have a PHP file that I run as a cron task every 24 hours. Can some one help with a tweak to the query to only select matches that have occurred between the time the query is executed and through 48 hours before?

PHP Code:

$urls mysql_query("SELECT linkid,linkurl FROM adv_links ORDER by linkid ASC");
while (
$urlrow mysql_fetch_array($urls)) {
fwrite($file," ");
fwrite($file$urlrow[1]);
fwrite($file" | "); 
fwrite($file," ");
fwrite($file$urlrow[0]);
fwrite($file," \n");


How would I change
Code:

$urls = mysql_query("SELECT linkid,linkurl FROM adv_links ORDER by linkid ASC");
to accomplish this?

Any help would be appreciated!

Thanks,

MoT3rror 05-04-2008 11:18 PM

Is there a time column in your table?

PhilMcKrackon 05-04-2008 11:27 PM

Yes there is - its "dateline" and as an example under PHPMyAdmin the field looks like "1207498258" for a particular entry. I am unsure how to read that with the SQL query and translate that to what I need.

Thanks for the reply,

MoT3rror 05-05-2008 12:08 AM

PHP Code:

$time  mktime(date('H'), date('i'), date('s'), date("m"), date('d')-2date('Y'));

$data $db->query_read("SELECT * FROM table WHERE timecolumn > '"date('Y-m-d H:i:s'$time) . "'"); 


PhilMcKrackon 05-05-2008 12:26 AM

Thank you very much for the help. I'll give it a try.

Eikinskjaldi 05-05-2008 12:51 AM

More easily done within mysql

...where unix_timestamp() - timecolumn <= 3600*48

PhilMcKrackon 05-05-2008 01:46 PM

After many frustrating hours I'm still having a problem. I have tried multiple ways of writing the SQL query line but it still is not correct. I am using this code
PHP Code:

$time  mktime(date('H'), date('i'), date('s'), date("m"), date('d')-2date('Y'));
$urls mysql_query("SELECT linkid,linkurl FROM adv_links WHERE dateline > '"date('Y-m-d H:i:s'$time) . "' ORDER by linkid ASC"); 

But my query is still returning all results from the beginning, not just the last two days. The query does sort by the correct order though. Any help would again be appreciated.

Thanks,

Marco van Herwaarden 05-06-2008 10:43 AM

Try:
PHP Code:

$urls mysql_query("SELECT linkid,linkurl FROM adv_links ORDER by linkid ASC WHERE dateline > " . (TIMENOW - (24 60 60))); 


PhilMcKrackon 05-06-2008 02:06 PM

Quote:

Originally Posted by Marco van Herwaarden (Post 1510259)
Try:
PHP Code:

$urls mysql_query("SELECT linkid,linkurl FROM adv_links ORDER by linkid ASC WHERE dateline > " . (TIMENOW - (24 60 60))); 


Thanks for the help but that bit of code gives me the error
Quote:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/*****/public_html/pagevisD.php on line 19
on the line after the SQL query call. I edited the SQL cal that works and changed linkid,linkurl to linkid,linkurl,dateline - then added fwrite($file, $urlrow[2]); to the output file as a test (and the date shows up) so I know it's not the dateline table entry that is the problem.

Other thoughts?

--------------- Added [DATE]1210086427[/DATE] at [TIME]1210086427[/TIME] ---------------

Quote:

Originally Posted by Eikinskjaldi (Post 1508786)
More easily done within mysql

...where unix_timestamp() - timecolumn <= 3600*48

Sorry I missed this post, could you elaborate?

Thanks,

--------------- Added [DATE]1210108992[/DATE] at [TIME]1210108992[/TIME] ---------------

PHP Code:

$urls mysql_query("SELECT linkid,linkurl FROM adv_links ORDER by linkid ASC WHERE unix_timestamp() - timecolumn <= 3600*48"); 

Eikinskjaldi, tried this as the query and I get the same PHP error as above -
Quote:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/*****/public_html/pagevisD.php on line 19
I have tried several variations of both syntaxes above and the error persists. I'll keep trying...

Eikinskjaldi 05-07-2008 03:33 AM

"timecolumn" is whatever field in your database contains the dateline data

its kicking an error because you dont actually have a field called "timecolumn"


It looks like your field is called dateline, so the sql is

[sql]
SELECT linkid,linkurl FROM adv_links
ORDER by linkid ASC
WHERE unix_timestamp() - dateline <= 3600*48
[/sql]


All times are GMT. The time now is 09:27 PM.

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.01084 seconds
  • Memory Usage 1,755KB
  • 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
  • (1)bbcode_code_printable
  • (6)bbcode_php_printable
  • (4)bbcode_quote_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