View Full Version : Help Need With Index.php Hack
MarkB
04-21-2002, 12:02 AM
I'm placing the following code in index.php - the idea is to get the 5 latest records from the events table (including some custom fields of my own), formatted via templates. Having this code in index.php, however, just leaves my with index loading as a blank page :(
$events = $DB_site->query("SELECT eventid, DATE_FORMAT(eventdate,'%M %d') AS gigdate, eventdate, subject, location, country
FROM calendar_events WHERE public='1' ORDER BY eventdate LIMIT 10");
while ($gig = $DB_site->fetch_array($events) and ++$bgcounter):
$gigid .= "$event['eventid']";
$gigdate .= "$event['gigdate']";
$gigband .= "<a href=$bburl/shows.php?s=&action=getinfo&eventid=$event['eventid']>$event['subject']</a>";
$gigcity .= "$event['country']";
eval("\$nextgigs = \"".gettemplate("gigs")."\";");
Any help is appreciated...
Mark
Sparkz
04-21-2002, 12:13 AM
Your PHP-syntax is, err, a bit off ;)
$events = $DB_site->query("SELECT eventid, DATE_FORMAT(eventdate,'%M %d') AS gigdate, eventdate, subject, location, country
FROM calendar_events WHERE public='1' ORDER BY eventdate LIMIT 10");
while ($gig = $DB_site->fetch_array($events) and ++$bgcounter) {
$gigid .= $gig['eventid'];
$gigdate .= $gig['gigdate'];
$gigband .= "<a href=$bburl/shows.php?s=&action=getinfo&eventid=" . $gig['eventid'] . ">" . $gig['subject'] . "</a>";
$gigcity .= $gig['country'];
}
eval("\$nextgigs = \"".gettemplate("gigs")."\";");
Something like this should do it... I think :P
MarkB
04-21-2002, 02:33 AM
Hi,
My idea for this hack was two pull the next 10 events from the calendar table, sort them by date, and have them displayed in individual table rows so I can display them in a side column on index.php (within their own table of course) -- see the right-side column of www.ultimatemetal.com/forum/ for placement idea.
Anyway, I have problems. I can pull the data out fine, but when displayed, it displays all dates in one cell, all subjects in another, etc:
May 1May 2May3 May4
etc...
This is the code:
In index.php, before $birthdaybits=""; I put:
$events = $DB_site->query("SELECT eventid, DATE_FORMAT(eventdate,'%M %d') AS gigdate, eventdate, subject, location, country
FROM calendar_events WHERE public='1' ORDER BY eventdate LIMIT 10");
while ($gig = $DB_site->fetch_array($events) and ++$bgcounter) {
$gigid .= $gig['eventid'];
$gigdate .= $gig['gigdate'];
$gigband .= "<a href=$bburl/shows.php?s=&action=getinfo&eventid=" . $gig['eventid'] . ">" . $gig['subject'] . "</a>";
$gigcity .= $gig['country'];
}
unset($gigbits);
$DB_site->free_result($events);
// eval("\$gigbits = \"".gettemplate("gigbits")."\";");
// eval("\$nextgigs = \"".gettemplate("gigs")."\";");
(note the two extra table fields I've added in calendar for my hack)
Template gigs is just a table with two header rows, and then $gigbits where I want the content rows to be added.
template gigbits is just:
<tr bgcolor="$bgcolor">
<td nowrap><smallfont>$gigdate</font></td>
<td><smallfont>$gigband</font></td>
<td><smallfont>$gigcity</font></td></tr>
Is there anything else I need to do to make sure each individual record has its own row? Or is it just not possible? I did have it being called from an external PHP into index.php, but that seemed to slow everything down (possibly because of an extra 10 queries when loading the page?).
Please help :ermm:
Sparkz
04-21-2002, 12:55 PM
I really haven't messed to much with templates and stuff, other than following directions for hacks I have installed, but I think you need to do some eval'ing inside the while loop. So you'd do something like this:
$events = $DB_site->query("SELECT eventid, DATE_FORMAT(eventdate,'%M %d') AS gigdate, eventdate, subject, location, country FROM calendar_events WHERE public='1' ORDER BY eventdate LIMIT 10");
unset ($nextgigs);
while ($gig = $DB_site->fetch_array($events) and ++$bgcounter) {
$gigid .= $gig['eventid'];
$gigdate .= $gig['gigdate'];
$gigband .= "<a href=$bburl/shows.php?s=&action=getinfo&eventid=" . $gig['eventid'] . ">" . $gig['subject'] . "</a>";
$gigcity .= $gig['country'];
eval("\$nextgigs .= \"".gettemplate("gigs")."\";");
}
unset($gigbits);
$DB_site->free_result($events);
// eval("\$gigbits = \"".gettemplate("gigbits")."\";");
Move the $nextgigs-eval inside the while loop, and remember to change = to .=
MarkB
04-21-2002, 09:59 PM
Thanks for the response :)
I'm getting closer to my desired result, but still having problems...
With this code:
$events = $DB_site->query("SELECT eventid, DATE_FORMAT(eventdate,'%M %d') AS gigdate, eventdate, subject, location, country FROM calendar_events WHERE public='1' ORDER BY eventdate LIMIT 10");
while ($gig = $DB_site->fetch_array($events)) {
$gigid .= $gig['eventid'];
$gigdate .= $gig['gigdate'];
$gigband .= "<a href=$bburl/shows.php?s=&action=getinfo&eventid=" . $gig['eventid'] . ">" . $gig['subject'] . "</a>";
$gigcity .= $gig['country'];
eval("\$gigbits .= \"".gettemplate("gigbits")."\";");
eval("\$nextgigs .= \"".gettemplate("gigs")."\";");
}
I'm getting this result (attached). Any ideas? :ermm:
Sparkz
04-22-2002, 07:19 AM
Try this:
$events = $DB_site->query("SELECT eventid, DATE_FORMAT(eventdate,'%M %d') AS gigdate, eventdate, subject, location, country FROM calendar_events WHERE public='1' ORDER BY eventdate LIMIT 10");
while ($gig = $DB_site->fetch_array($events)) {
$gigid = $gig['eventid'];
$gigdate = $gig['gigdate'];
$gigband = "<a href=$bburl/shows.php?s=&action=getinfo&eventid=" . $gig['eventid'] . ">" . $gig['subject'] . "</a>";
$gigcity = $gig['country'];
eval("\$gigbits .= \"".gettemplate("gigbits")."\";");
}
eval("\$nextgigs = \"".gettemplate("gigs")."\";");
That should do it. I had gigs and gigbits mixed up :)
MarkB
04-22-2002, 08:29 AM
That did indeed do it! :D Thanks! :)
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.