Re: newbie question on PHP and PostgreSQL
| From: | m | Date: | Thu, 08 May 2003 22:12:50 +0000 |
| Subject: | Re: newbie question on PHP and PostgreSQL | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-146923@lists.php.net to get a copy of this message | ||
Hey All,
I figured it out. PHP apparently doesn't requrie you to add the optional
parameter in pg_fetch_array of the array pointer position. By just adding
this $j to that function, it cleared it up nicely.
HTH,
-m
//-------------------------------------------------------begin fixed it
thusly
for($j=0; $j < $rowcount; $j++) {
$row = pg_fetch_array($sch_result, $j);
//check each possible day in month agains each result
echo $row["bandname"] . ', ';
}
pg_result_seek($sch_result, 0);
//-------------------------------------------------------finish fixed it
thusly
"M" <mcloney@casas.org> wrote in message
news:20030508175407.17212.qmail@pb1.pair.com...
> Hey All,
>
> I'm hoping you may have seen this or may at least know of a
> newsgroup/website I can hit that might help me explain why this is
> happening...
>
> Here's the scenario. I'm connecting to a PostgreSQL database and grabbing
> all the schedule results for a given month. Then I'm looping over those
> results. There are actually a ton of stupid loops going on... but the
weird
> thing is that after I go through the list once and then go back to the top
> of the result set, the first value in the array (from the query) seems to
> disappear!? Any clues?
>
> I know that this code only prints the names of all bands for every day in
> the schedule. My next task is to try to figure out how to match the date
> associated with a row with the date that's being constructed in the loop.
> But if anyone has any suggestions on that, it's just a bonus.
>
> My comments below will detail my madness. Thanks in advance for any
> suggestions!
>
>
> Cheers,
>
> -m
>
> Here's the code, essentailly:
>
> <?php
>
> //-------------------------------database connection start
>
> // Connecting, selecting database
>
> include('database_connecter.php');
>
> //-------------------------------database connection end
>
> //-------------------------------see if the month and/or year have been
> passed through the URL string
>
> //-------------------------------begin set month and year variables
> accordingly
>
> $qry_string = $_SERVER['QUERY_STRING'];
>
> parse_str($qry_string);
>
> if ($month < 1 OR $month > 12) {
>
> unset($month); }
>
>
> if ($year < 1999 OR $month > 2099) {
>
> unset($month); }
>
> if (!isset($month)) {
>
> $month = date("m");
>
> }
>
> if (!isset($year)) {
>
> $year = date("Y");
>
> }
>
> $month_year = date(F) . ' ' . date(Y);
>
> //-------------------------------end set month and year variables
> accordingly
>
> print "<!--Connected successfully-->";
>
> //-------------------------------head information
>
> print '<head><title>' . $month_year . ' at The
> Casbah</title></head>';
>
> //-------------------------------begin construct query to pull bands and
> shows from database
>
> $sql = 'select bandname, showdate from bands inner join bandshow on
> bands.bandid ';
>
> $sql = $sql . ' = bandshow.bandid inner join shows on bandshow.showid =
> shows.showid ';
>
> $sql = $sql . ' where bandshow.venueid = 1 and extract(month from
showdate)
> = ' . $month ;
>
> $sql = $sql . ' order by shows.showdate, bandshow.bandorder';
>
> //-------------------------------begin construct query to pull bands and
> shows from database
>
> $sch_result = pg_query($connection, $sql)
>
> or die("Failed to grab schedule");
>
>
> $rowcount = pg_num_rows($sch_result);
>
> echo "<BR>";
>
> echo "total of $rowcount band/show records in this month's schedule";
>
> echo "<BR>";
>
> echo "<table border=1>";
>
> $numDaysInMonth = date("t", mktime(0, 0, 0, $month, 1, $year));
>
> //-------------------------------loop number of times as days in current
> month
>
> //-------------------------------I know that this isn't perfect yet, but
> it's just weird
>
> //-------------------------------because after I run through this once and
> reset the
>
> //-------------------------------result witht he pg_result_seek command,
it
> seems to lose
>
> //-------------------------------a value from the array. I think the array
> is still the same size
>
> //-------------------------------as it was before but maybe there's a
better
> way to do this?
>
> for ($i=0; $i < $numDaysInMonth; $i++) {
>
> echo '<tr><td>' . date("D", mktime(0, 0, 0, $month, ($i+1),
> $year)) . ' '
.
> ($i+1) . ' ' . '</td>';
>
> echo '<td>';
>
> //loop over result set
>
> for($j=0; $j < $rowcount; $j++) {
>
>
> $row = pg_fetch_array($sch_result);
>
> //check each possible day in month agains each result
>
> echo $row["bandname"] . ', ';
>
> }
>
> //reset($row);
>
> pg_result_seek($sch_result, 0);
>
> echo '</td></tr>';
>
> }
>
> echo "</table>";
>
> ?>
>
>