Managing Local Links with PHP and MySQL
Website Automation with PHP and MySQL, Part 12
Low End Mac Reader Specials
Memory To Go Special: MacPro 8 Core Memory 4GB kit $192 / 2GB kit $109. MacBook Pro / MacMini / iMac Intel Core2 DUO 2GB $44 1GB $23--Free shipping available.
Download Typestyler, still the Ultimate Styling Tool for Internet, Print and Video Graphics. Works great in Classic with a Native OS X Version on the way. Free Tryout: www.typestyler.com
LA Computer Company: LA Computer Company: Specials on AppleCare, Apple Displays, MacBooks, iMac's, MacBook Pros, Laptop and iPod accessories and more. Apple A/C Adapters for laptops starting at $25.00 Call 1-800-941-7654 or Click Here.
Other World Computing: Go Longer Between Charges with a NewerTech NuPower Batteries! Not just another battery, NuPower available for PowerBook and iBook models, is built in the USA to offer the longest Run Time + the longest useful LifeTime too! In Stock at OWC from $99.95
Mac users can finally play Party Poker for Mac. Not only that, they can also learn how to play PokerStars for Mac.
Laptop Hardware Provided by TechRestore - Overnight Mac & iPod Repairs.
Compare products like desktop computers, laptops, and LCD TVs side by side! All the information and reviews to make the best purchasing decision for a new cell phone GPS products or MP3 players. The Ciao network makes searching products easy for you.
NEW MacPro Memory 800Mhz With Apple Spec Heat Sink 2GB Kit $104 / 4GB Kit $184 / 8GB Kit $362 Click to Maximize your Macs...
Dan Knight - 2002.07.03
We've finally finished automating link updates on the home page, the WebTV home page, the mobile edition home page (a subscriber-only feature), and most editorial content. It's been quite a project.
Creating the "local links" database was pretty simple, although we did have a few different fields compared to the external links database. Because most of our new content is available in regular, WebTV, and mobile versions (the latter especially formatted to work well on Palms), we need to track three different URLs. Here's the naming convention we use:
- General: http://lowendmac.com/column/02/0703.html
- Mobile: http://lowendmac.com/column/02/0703.htm
- WebTV: http://lowendmac.com/column/02/0703w.htm
Every link on the site begins with "http://lowendmac.com", so we don't have to include that part in our database. And rather than create three longer records with the balance of the URL, we use four: one to hold the "/column/02/" part and three to hold the general, mobile, and WebTV final part of the URL.
Entries are dated by their publication date and also time stamped with a Unix time code when entered into the database, just like we did with external links. In fact, except for having to track three types of pages, the local links database is very similar to the external links database.
Displaying the Data
Where things become very different is when we display the data. For external links, sorting by time stamp is fine, but we run into some issues - and some opportunities.
First, I want to include a link to "Today in LEM History." This could come first, but I prefer to focus on the new content and want the history link to show up after today's new articles. That means somehow separating today's links from yesterday's.
And that brings up another issue - days with no updates. I don't usually add content over the weekend or on holidays. So we can't simply search for today's date; we have to search for the most recent date and display that first.
Brian, who has been helping me a lot with this, was on a church sponsored mission trip in Washington, D.C., last week, so Stephen, our 14-year-old PHP wizard and the publisher of PetCube.com (which gets more traffic every day than Low End Mac!), helped me out.
Here's the snippet of code that finds that most recent date:
$latestdate = mysql_fetch_array(mysql_query("SELECT * FROM links ORDER BY timestamp DESC LIMIT 1"));
And here's the code that displays local links for that day:
- $get_links = mysql_query("SELECT * FROM links WHERE pubdate = '$latestdate[pubdate]' ORDER BY timestamp DESC");
- while ($array = mysql_fetch_array($get_links))
- {
- echo "<li>";
- if ($array[flag]<>"")
- {echo"<img src=/art/$array[flag].gif width=17 height=13 align=middle> ";}
- echo "<a href=\"$array[path]$array[html]\">$array[linktext]</a>, ";
- if ($array[author]<>"")
- {echo"$array[author], ";}
- if ($array[columnname]<>"")
- {echo"$array[columnname], ";}
- echo "$array[pubdate].
- $array[description]</li>";
- }
This creates a bullet list item for local content just like we did last week with external links.
Next we add our history link with the following code:
- $thisdate = date(md);
- $thisrecord = date(nd);
- $today = date("F j");
- $get_links = mysql_fetch_array(mysql_query("SELECT * FROM lemhistory WHERE datefield = '$thisrecord'"));
if ($get_links == "") {die ("no record");}echo "<li> <a href=\"/arc/$thisdate.html\">$today in LEM history:</a>$get_links[stories]</li>";
|
We discovered the above code didn't quite work on July 8, when we had no archive link. Here's how the revised code:
The difference is that instead of telling this subroutine to die if there is no record, we now tell it to display a record if there is one. Problem solved. |
Our archive filenames are of the format MMDD, but our MySQL database strips off the leading zero in our integer field, which is why we need both $thisdate and $thisrecord. $today displays the date using the full name of the month and the one or two digit day. If there is no record for a specific date, which happens maybe twice a month, no LEM archive link is displayed.
After this, we need to display the previous day's links, and here's where we have a unique opportunity to change the sort order from timestamp to something else.
As you may recall, we had to call a second PHP script to create a counter for external links. With local links, I'm less concerned with how many times a link is followed from our home page and more interested in how many times the article itself is read. So instead of calling a second PHP script that increments the counter and then leads to the article in question, I've put a small PHP script on the article's page that increments the counter every time the article is read - even if it's being linked from MacSurfer or another outside source.
Based on the assumption that the article that most people read one day is the one from that date that will generate the most interest the next day, instead of sorting older links by timestamp, we sort them by popularity.
- $previous_date = mysql_fetch_array(mysql_query("SELECT * FROM links WHERE pubdate != '$latestdate[pubdate]' ORDER BY timestamp DESC LIMIT 1"));
- $previous_links = mysql_query("SELECT * FROM links WHERE pubdate = '$previous_date[pubdate]' ORDER BY clicks DESC");
- while ($previous_array = mysql_fetch_array($previous_links))
- {
- <display code omitted>
- }
The first line finds the second most recent date by only checking publication dates not equal to (!=) the latest date used above. And in the next section, which I'm not posting, we do the same thing for one day earlier by checking dates not equal to the $latestdate or $previous_date.
And this code puts in a lot of work. The same script is called up on the main Low End Mac home page; our iMac, Power Mac, and 'Book indexes; and at the bottom of a lot of our editorial content. (Eventually all of it, but it's going to take some time to update and upload all those pages.)
I've slightly modified this code for our mobile edition and
WebTV home pages. Best of all, I don't have to manually update all
of these pages 2-3 times daily - the computer is doing it for me
and making my life simpler.
Recent Online Tech Journal Columns
- Apple's AAUI ethernet connector, 09.04. From 1991 through 1995, Apple used a proprietary ethernet connection. Why they created AAUI and where to find adapters.
- PowerPC G5: Apple's last fling with PowerPC architecture, 05.24. Teaming up with IBM, Apple adopted the PowerPC G5 in 2003 - and phased out the last G5 Power Mac three years later.
- The PowerPC G4: From 350 MHz to 2.0 GHz, 05.24. AltiVec and dual processor support made the G4 a big improvement over the earlier G3 processor.
- More in the Online Tech Journal index.
Recent Content on Low End Mac
- Apple's eMate still a great tool in the classroom, Tommy Thomas, Welcome to Macintosh, 05.09. How one teacher equipped his classroom with eMates with his own money - and plans to keep using them as long as possible.
- $199 iPhone coming?, iPod not a Walkman, crosswalk danger, iPods taking over cars, and more, iNews Review, 05.09. Also the iPhone is a second-rate phone, iPhone 2.0 may introduce handwriting recognition, Kensington battery pack and chargers, new iPhone apps, and more.
- Best Power Mac G4 deals, Low End Mac Deals, 05.09. Used Cube, $479; 400 MHz PCI, $70; 450 AGP, $105; 733 DA, $150; 867 QS, $200; 1 GHz, $250; 450 dual, $295; 1 GHz dual, $400; 1.42, $600; more.
- Best 15" MacBook Pro deals, Low End Mac Deals, 05.09. Used 1.83 GHz Core Duo, $1,100; 2.16, $1,295; refurb, 2.2 Core2, $1,449; 2.4 Penryn, $1,699; 2.5, $2,149; new 2.2, $1,525 after rebate; 2.4, $1,685 a/r; more.
- MacBook sales explode, MacBook Air reviews, several new hard drives, and more, The 'Book Review, 05.09. Also silver-zinc batteries may outlast lithium-ion, Bell Aliant bundling MacBook with Internet access, notebook drives benchmarked, bargain 'Books from $150 to $2,699, and more.
- Best iPod touch deals, Low End Mac Deals, 05.09. Refurb 8 GB '08, $249; 16 GB '07, $329; '08, $349; new 8 GB '07. $269; '08, $280; 16 GB '07, $330; '08, $369; 32 GB, $475.
- More G4 upgrade advice, secure disk wipes, 500 MHz iMacs with Tiger in action, and more, Dan Knight, Low End Mac Mailbag, 05.09. The importance of securely clearing your hard drive before you pass on your Mac, Pismo and closed lid mode, G3 iMacs in the classroom, and more thoughts on upgrading G4 Power Macs.
- Apple tops in tech support, Penryn iMacs and Psystar Open Computer reviewed, and more, Mac News Review, 05.09. Also the iMac philosophy, OpenOffice 3.0 going Mac, MozyHome backup comes to Macs, weather in the Dock, and more.
- 140 million copies of Vista sold (yawn), Frank Fox, Stop the Noiz, 05.09. It sounds like a lot, but over 85% of Windows users are staying away from Vista. 20% of Mac users have embraced Leopard in one-third the time.
- Mac of the Day: Macintosh LC, Oct. 1990 - only 3" tall, the LC was the least expensive color Mac in 1990.
- List of the Day: Jaguar List is for anyone using Mac OS X 10.2.x.
- May 12 in LEM history: 99: Is Apple missing the boat? - 00: PowerBook history - Frankenstein Power Mac - 03: Beige Power Mac G3 - Is a 5400 worth buying? - Upgrades for the tray-loading iMac - Quiet computing - 04: Windows stability: Nothing changes - Broadband Internet access: Picking the right speed - 06: The future of PowerPC Macs in the Intel era - Setting up a 68040-based Mac media center - Mac mini Core Duo upgrades
- Why one Mac user chose BlackBerry over iPhone, Andrew J Fishkin, Best Tools for the Job, 05.08. The advantages of OS X, Safari, Mail, and iSync don't outweigh the familiarity of BlackBerry, its excellent software, easily replaceable batteries, and a camera-free option.
- 500 MHz iMac with Panther great for Internet, watching video, and more, Carl Nygren, My Turn, 05.08. At $65 with upgraded RAM and a bigger hard drive, it was too good to pass up, and it works very nicely with Mac OS X 10.3.
- Boomerang: The Blue and White Power Mac G3 that kept coming back, Charles Webb, The Webb Chronicles, 05.08. Over its nine-year lifespan, this Power Mac had at least five owners before it finally gave up the ghost.
- Best Intel iMac deals, Low End Mac Deals, 05.08. Used 17" 1.83 GHz, $699; 20" 2.16 Core2, $885; refurb 20" 2.16, $949; 2.4, $1,099; 24" 2.16, $1,199; 2.4, $1,399; 2.8, $1,599; Penryn from $1,049 after rebate.
- Best 17" PowerBook G4 deals, Low End Mac Deals, 05.08. Used 17" 1 GHz, $790; 1.33 GHz, $850; 1.5 GHz, $859; 1.67 GHz, $889.
- Best Mac OS X 10.5 'Leopard' deals, Low End Mac Deals, 05.08. Mac OS X 10.5.1 single user, $99; 5 users, $139; 10.5 Server, 10 users, $450; unlimited, $899.
- More links in our archive.
Go to the Online Tech Journal index.
About LEM | Support | Usage | Privacy | Contacts



