Forum Moderators: coopster
TblSermon:
ID Date Time Speaker
----------------------------------
122 2012-09-18 "09:00 AM" "Joshua Jackson"
123 2012-09-18 "11:00 AM" "Joshua Jackson"
1452 2014-02-25 "06:00 PM" "JoJo The Idiot Circus Boy"
TblLocation:
ID Location City State
-------------------------------------------
14 "Omega Arena" Boston MA
1263 "Kentucky Civic Center" Lexingon KY
TblJoinSermonLocation:
ID MeetingName Location Sermon
-----------------------------------
323 "Special Times" 14 122
324 "Special Times" 14 123
345 "Journeys" 1263 1452
SELECT TOP (100) PERCENT dbo.TblSermon.Date, dbo.TblSermon.Time, dbo.TblSermon.Speaker, dbo.TblJoinSermonLocation.MeetingName, dbo.TblLocation.Location, dbo.TblLocation.City, dbo.TblLocation.State
FROM dbo.TblLocation RIGHT OUTER JOIN dbo.TblJoinSermonLocation ON dbo.TblLocation.ID = dbo.TblJoinSermonLocation.Location RIGHT OUTER JOIN dbo.TblSermon ON dbo.TblJoinSermonLocation.Sermon = dbo.TblSermon.ID
WHERE (dbo.TblSermon.Date >= { fn NOW() })
ORDER BY dbo.TblSermon.Date, dbo.TblSermon.Time
Array
(
[Location] => Omega Arena
[City] => Boston
[State] => MA
[MeetingName] => Special Times
[Date] => 2012-09-19 00:00:00.000
[Time] => 09:00 AM
[Speaker] => Joshua Jackson
)
Array
(
[Location] => Omega Arena
[City] => Boston
[State] => MA
[MeetingName] => Special Times
[Date] => 2012-09-19 00:00:00.000
[Time] => 11:00 AM
[Speaker] => Joshua Jackson
)
Array
(
[Location] => Omega Arena
[City] => Boston
[State] => MA
Array
(
[MeetingName] => Special Times
Array
(
[Date] => 2012-09-19 00:00:00.000
[Time] => 09:00 AM
[Speaker] => Joshua Jackson
)
Array
(
[Date] => 2012-09-19 00:00:00.000
[Time] => 11:00 AM
[Speaker] => Joshua Jackson
)
)
)
$rows=$currName=null;
while (list($name,$event,$date) = mysql_fetch_array($result)) {
if ($name==$currName) { $displayName=' '; }
else { $displayName=$currName=$name; }
$rows .= "
<tr>
<td>$displayName</td>
<td>$event</td>
<td>$date</td>
</tr>
";
}
if ($rows) { echo "<table>$rows</table>"; }
else { echo "<p>No results were found.</p>"; }
while ($row = mysql_fetch_array($result)) {
$name = $row['name']; // or $row[0]
$event = $row['event']; // or $row[1]
$date = $row['event_date']; // or $row[2]
Thanks for the "pre" idea.
list(), after all.
<?php
try {
$dbh = new PDO("sqlsrv:Server=localhost;Database=Sermons", "", "");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT TOP (100) PERCENT dbo.TblSermon.Day, dbo.TblSermon.Date, dbo.TblSermon.Time, dbo.TblSermon.Speaker, dbo.TblSermon.Series, dbo.TblSermon.Sarasota, dbo.TblSermon.NonFlc, dbo.TblJoinSermonLocation.MeetingName, dbo.TblLocation.Location, dbo.TblLocation.Pastors, dbo.TblLocation.Address, dbo.TblLocation.City, dbo.TblLocation.State, dbo.TblLocation.Zip, dbo.TblLocation.Country, dbo.TblLocation.Phone, dbo.TblLocation.Email, dbo.TblLocation.WebAddress
FROM dbo.TblLocation RIGHT OUTER JOIN dbo.TblJoinSermonLocation ON dbo.TblLocation.ID = dbo.TblJoinSermonLocation.Location RIGHT OUTER JOIN dbo.TblSermon ON dbo.TblJoinSermonLocation.Sermon = dbo.TblSermon.ID
WHERE (dbo.TblSermon.Date >= { fn NOW() })
ORDER BY dbo.TblSermon.Date, dbo.TblSermon.Time";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$count = 0;
$rows = $currName = null;
foreach ($stmt as $row) {
if ($row["Location"] == $currName) {
$displayName = " ";
} else {
$displayName = $currName = $row["Location"];
}
$rows .= " <tr> <td>" . $displayName . "</td> <td>" . $row["MeetingName"] . "</td> <td>" . $row["Date"] . "</td> </tr> ";
$count++;
}
if ($rows) {
echo "<table>" . $rows. "</table>";
} else {
echo "<p>No results were found.</p>";
}
unset($row);
if ($count == 0) {
echo "No scheduled events";
}
$dbh = null;
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>
Upcoming Events
Special Times
Omega Arena (Boston, MA)
Session One
Date: September 19th @ 09:00AM
Speaker: Joshua Jackson
Session Two
Date: September 19th @ 11:00AM
Speaker: Joshua Jackson
What is the purpose of . in $rows .= " .....
This approach (concatenating to $rows) allows you to easily do the very important if/else (what if nothing is found?)
The reason that I was looking at a multidimensional array was that I would be able to nest the bits of information, appropriately.
Concatenating is "adding to a string as needed"
$me = 'Meoh ';
$me .= ' Myoh';
echo $me; // "Meoh Myoh"
$me = 'Meoh ';
$me = $me . ' Myoh';
echo $me; // "Meoh Myoh"
.= is better than = $variable?
You should still be able to do that. You just "nest" your display items. In the same way you're "tracking" the outer event name, you have a variable inside to display stuff as the sessions change (or not.)
for ($i,$i<something,$i++) {}, but I haven't used that very much. foreach over and over to get the information that I want.