Low End Mac Reader Specials
TypeStyler For Mac OS X is Now Shipping! Download The Free Fully Functional 60 Day Tryout at www.typestyler.com
OWC: We Make DIY Upgrading Easy! Maximize your Apple MacBook / MacBook Pro. Up to 8.0GB Memory, up to 1.0TB HD & More. Easy Guide + Free, Detailed Installation Videos. Click here
Don't install Parallels to play poker online! Poker Mac will show you how
to download and install a native Mac poker application such as Full
Tilt Poker Mac.
Laptop Hardware Provided by TechRestore - Overnight Mac & iPod Repairs.
Compare products like desktop computers, apple laptops, apple macs, and LCD Monitors side by side! All the information and reviews to make the best purchasing decision for new mobile phones, sat nav systems, or MP3 players. The Ciao online shopping community makes searching products easy for you.
Low End Mac's Online Tech Journal
Modified Date Display and Scheduled Content with PHP
Website Automation with PHP and MySQL, Part 14
Dan Knight - 2002.07.24
The more I use PHP and MySQL, the more I realize how different
the combination is from using a fully integrated database program
like FileMaker
Pro. In FM Pro, you
can define relationships between
fields and have them automatically generated and universally
applied. With MySQL, you have to write a program to manipulate the
data.
Displaying the Date Field
But I'm learning that, and also learning equivalents to old BASIC and FileMaker commands that give me more control over presentation. For instance, MySQL delivers the results of a date field in the format yyyy-mm-dd, so a PHP script would read today's date from a MySQL database as 2002-07-24.
That's fine, but I prefer to user periods instead of hyphens (and some people prefer slashes), and I don't see any need to display the year when all the links are to new content.
In looking through our PHP books, I found the strtr function, which will replace one string with another throughout a field. In this case, I could use strtr to find every hyphen in the date field and replace it with a period. Now today's date would display as 2002.07.24.
That got me halfway there. Now I needed to find an equivalent of the rightstr command so I could extract just the five rightmost characters from the date string. The closest PHP equivalent is the substr command, which can work from either end of a string. substr(string, nn) will keep the first nn characters of a string - but if nn is a negative number, it instead retains the last nn characters.
Here's the code I used to take the MySQL date field, strip it to the last five characters, and replace any hyphen with a period:
$shortdate = $array[pubdate]; $shortdate = substr ($shortdate, -5); $shortdate = strtr ($shortdate, '-', '.'); echo "$shortdate. ";
Which replaces echo "$array[pubdate] "; in my earlier coding.
And I think this looks much nicer.
Scheduled Content
Sometimes writers get material to me days or even weeks in advance. This gives me plenty of time to edit their articles, schedule their release date, and have them almost ready to go on their scheduled publication date. Almost.
That is, everything is ready to go except that I haven't been able to assign a record number until the day an article goes up. But by fiddling around a bit more with PHP, I can now schedule articles days or weeks in advance, assign an ID, add the article to the database, but not have it displayed until the scheduled date and time.
The first part of the process means modifying this line of code:
$latestdate = mysql_fetch_array(mysql_query("SELECT * FROM links ORDER BY timestamp DESC LIMIT 1"));
by adding one thing - ignoring timestamps later than the current time.
First we define the current time:
$rightnow = date(U);
and then we find the latest article earlier than that:
$latestdate = mysql_fetch_array(mysql_query("SELECT * FROM links WHERE timestamp <= $rightnow ORDER BY timestamp DESC LIMIT 1"));
We need to make just one more change: Don't display today's articles with timestamps later than the present:
$get_links = mysql_query("SELECT * FROM links WHERE pubdate = '$latestdate[pubdate]' and timestamp <= $rightnow ORDER BY rank DESC");
Our display script will now determine today's date and the current time, and it won't display links to articles scheduled any later than the present moment.
That's half the battle. Now I need to create a way that lets me schedule the articles by date and time, convert that to a Unix timestamp, and use that in our database instead of the current time that a record is added.
Here's the code I used to test input. Feel free to modify it as you see fit:
- <?php
- $unix_stamp = date(U);
- $cur_year = date(Y);
- $cur_month = date(m);
- $cur_day = date(d);
- $timezone = date(T);
- $now = date(H) . ":" . date(i);
- echo "<form action=$PHP_SELF method=post><input type=hidden name=process value=true><p>
- Publication Date (yyyy.mm.dd): <input type=text name=pubdate size=12 maxlength=10 value=\"$cur_year-$cur_month-$cur_day\"><br>
- Publication Time (no change for now): <input type=text name=pubtime size=6 maxlength=5 value=\"$now\"> $timezone<br>
- <input type=submit name=submit value=submit></p></form>";
- $stamp = $pubdate . " " . $pubtime . ":00";
- $stamp = strtotime ($stamp);
- if ($stamp >= $unix_stamp)
- {$unix_stamp = $stamp ;}
- ?>
We begin by recording the current time as $unix_stamp, then create year, month, day, minute, hour, and timezone data from the timestamp. The year, month, and date are displayed as Publication Date, and the current time is displayed as Publication Time.
If I make no change to this information, my script uses $unix_stamp as the records time of publication, but if I change the date or time of day, it will use the new information unless I set it to earlier than the timestamp. If I do that, it will use the current time.
The strtotime function converts our yyyy-mm-dd and hh:mm data to a Unix timestamp, which is seconds since the epoch (1970.01.01).
With these modifications, I can schedule the next Lite Side article days or weeks in advance. Of course, then there's the whole different issue of Jeff Adkins coming up with something more timely between then and now....
The first article to use the new system is this one, which I
wrote on Tuesday morning just before leaving for work at the camera
store.
Recent Online Tech Journal Columns
- Optimized Software Builds Bring Out the Best in Your Mac, 06.30. Applications compiled for your Mac's CPU can load more quickly and run faster than ones compiled for universal use.
- Low End Mac's Safe Sleep FAQ, 06.15. What is Safe Sleep mode? Which Macs support it? How can you enable or disable it? And more.
- The Original Macintosh, 01.12. An in-depth look at the original Macintosh and how it shaped future Macs.
- The Innovative Lisa, 01.08. Apple's Lisa and how it paved the way for the Macintosh.
- More in the Online Tech Journal index.
Links for the Day
- Mac of the Day: 15" MacBook Pro Core Duo, Jan. 2006 - The first Intel-based MacBook launched at 1.83-2.0 GHz, had several teething problems.
- Group of the Day: System 6 is the email list for those who choose System 6.
- November 22 in LEM history: 99: Gradebooks - 00: Leveraging Apple design - Quadra 630 to Power Mac 5200 - 02: Laptop or desktop? - 04: SuperDuper: Quick, easy, efficient backup - Cross-platform programming for the rest of us - 05: Mac video surveillance on the cheap - Which OS is best for my vintage Mac? - No 'best browser' for the Mac - Sorry state of browsers for classic Macs - 06: Core 2 means cooler running 'Books - 2.0 GHz G4 upgrade
- Support Low End Mac
Recent Content on Low End Mac
- Apple's Tablet an End Run Beyond Netbooks, Frank Fox, Stop the Noiz, 11.20. Whatever Apple has planned will leverage existing technologies while going beyond what its competitors can offer.
- i5 iMac Benchmarked, Mac mini 'Shouldn't Be Overlooked', Twitter Client for Classic Mac OS, and More, Mac News Review, 11.20. Also why Apple leaves the low end to others, 10.6.2 fixes video playback problem in 27" iMac, 3D Leopard and Snow Leopard performance, and more.
- Apple #4 in Reliability, Apple Tablet a Gadget for All?, HP's i7 Notebook Outdoes Mac Rivals, and More, The 'Book Review, 11.20. Also Flash 10.1 improves video on Hackintosh netbooks, thin-and-light notebooks impress, Windows XP finally on the way out, and more.
- NASA Chemical Sensor for iPhone, Smartphone Death Match, iPhone Earrings, and More, Ian R Campbell, 11.20. Also mobile phone dangers, new apps, GPS solution for iPod touch, new iPod and iPhone cases, and more.
- Replacing the Hard Drive in a Clamshell iBook, John Hatchett, Recycled Computing, 11.19. Yes, it is one of the most difficult Apple notebooks to disassemble and reassemble, but a 10 GB hard drive just will not do.
- IBM Model F: A Great Old Keyboard with an Outdated Layout, Tommy Thomas, Welcome to Macintosh, 11.19. Although it used a different technology than the revered IBM Model M keyboard, the Model F was a great keyboard in its own right.
- Soft Touch Keyboards, Wireless Mouse Options, Loving SeaMonkey 2, and More, Charles W. Moore, Miscellaneous Ramblings, 11.18. Also the future of browsing with PowerPC Macs and the multiple mouse input bug introduced with OS X 10.5.8.
- More links in our archive.
Recent Deals
- Best eMac Deals, 11.18. Used 1 GHz Combo, $100; SuperDrive, $269; 1.25 GHz Combo, $119; SD, $319; 1.42 GHz Combo, $289; SD, $498.
- Best Mac OS X 10.6 and Mac Box Set Deals, 11.18. "Snow Leopard", single user, $25; 5 users, $45; Mac Box Set, single user, $139; 5 users, $180; Server, $414. Shipping included.
- Best Xserve Deals, 11.18. Used 1 GHz dual G4, $649; 2.3 dual G5, $795; 3.0 4-core Xeon, $1,899; refurb 2.26 4-core, $2,499; new, $2,888; refurb 8-core, $2,999; new, $3,449; more.
- Best 15" MacBook Pro Deals, 11.17. Used 1.83 GHz, $750; 2.16, $800; 2.33, $900; refurb 2.4, $1,299; 2.53, $1,449; 2.66, $1,699; 2.8, $1,899; new 2.53, $1,579; 2.66, $1,799; more.
- Best Power Mac G4 and AGP Video Card Deals, 11.17. Used 400 MHz, $50; 933 MHz, $80; 500 dual, $60; 867 dual, $90; 1 GHz dual, $150; 1.25 GHz dual, $225; 1.42 GHz, $499.
- Best Mac OS X 10.5 Deals, 11.17. "Leopard" upgrade, $80; single user license, $135; 5 users, $173; Mac Box Set, 5 users, $230; Server, 10 users, $340; unlimited, $850. Shipping included.
- Best Mac mini Deals, 11.16. Used 1.42 GHz G4 mini, $379; 1.66 GHz Core Solo, $419; 2.0 Core 2, $450; new 2.26 GHz nVidia, $580; 2.53 GHz, $769; Server, $990.
- Best iBook G4 Deals, 11.16. Used 12" 1.07 GHz Combo, $210; 1.33 GHz, $298; 14" 1.33 GHz, $398; 1.42 GHz, $479; SuperDrive, $498.
- Best iPod shuffle Deals, 11.16. Used 1 GB, $35; 4 GB, $65; refurb 1 GB, $39; 2 GB, $59; new 2 GB, $55, 4 GB, $75. New and refurb prices include shipping.
- More deals in our archive.
About LEM | Support | Usage | Privacy | Contacts
Navigation
Used Mac Dealers
Apple History
Video Cards
Email Lists
Favorite Sites
MacSurfer
MacMinute
MacInTouch
MyAppleMenu
InfoMac
Macs Only!
The Mac Observer
Accelerate Your Mac
RetroMacCast
PB Central
MacWindows
The Vintage Mac
Museum
DealMac
DealsOnTheWeb
Mac2Sell
ramseeker
Mac Driver Museum
JAG's House
System
6 Heaven
System 7 Today
the pickle's Low-End
Mac FAQ
Abandonware
Petition
Mac vs. PC Info
Affiliates
The Apple
Store
Mac
Connection
B&H
MacMall
TechRestore
ExperCom
Crucial
Memory
batteries.com
Advertise
MacMinute
MacInTouch
MyAppleMenu
InfoMac
Macs Only!
The Mac Observer
Accelerate Your Mac
RetroMacCast
PB Central
MacWindows
The Vintage Mac
Museum
DealMac
DealsOnTheWeb
Mac2Sell
ramseeker
Mac Driver Museum
JAG's House
System 6 Heaven
System 7 Today
the pickle's Low-End
Mac FAQ
Abandonware
Petition
Mac vs. PC Info
Mac Connection
B&H
MacMall
TechRestore
ExperCom
Crucial Memory
batteries.com
