Re: Undefined Index ...confusion
| From: | Miller, Terion | Date: | Thu, 23 Jul 2009 14:29:30 +0000 |
| Subject: | Re: Undefined Index ...confusion | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-295754@lists.php.net to get a copy of this message | ||
On 7/23/09 9:24 AM, "Kyle Smith" <kyle.smith@inforonics.com> wrote:
Miller, Terion wrote:
I keep getting this error while trying to use the field 'ID' to pass in a url.. And
it's odd because the query is pulling everything BUT the ID which is the first field...
code:
<a href="view.php?ID=<?php echo
$_SESSION['fullRestaurantList']['ID']?>"><?php echo
htmlspecialchars(stripslashes($_SESSION['fullRestaurantList'][$i]['name']));
?>
We're going to need to know how the $_SESSION['fullRestaurantList'] gets populated.
Also, where do you define $i? Is $i the ID? Seemed like you've built an array of arrays and
you may want $_SESSION['fullRestaurantList'][$i]['ID'], or just $i. This is all
speculation from the 2 lines of code I've seen though.
- Kyle
The full script is (I have my Entourage email settings on html so I hope this displays ok for you
all---seems I've been told it turns into a mess in some views) :
<?php
// Check if page is set to show
all if(isset($_GET['show']) &&
$_GET['show'] == 'all') {
unset($_SESSION['results']);
unset($_SESSION['searchname']);
unset($_SESSION['address']);
}
// Check if there was an empty search sent
if(isset($_SESSION['noVarsSent'])) {
echo "<p><b>No values were submitted for the
search.</b></p>"; // Unset it so a reload of
page doesn't redisplay the error
unset($_SESSION['noVarsSent']); //
unset($_SESSION['results']); }
// Check if full
list of restaurants has been created and stored yet // Store full
results in $_SESSION to limit database hits
if(!isset($_SESSION['fullRestaurantList'])) {
// List not grabbed yet, so run query and store in $_SESSION
//check for range
if (!(isset($rangenum))) {
$rangenum = 1; }
// Grab all restaurants in alphabetical order $sql =
"SELECT restaurants.ID, name, address, inDate, inType, notes, critical, cviolations,
noncritical FROM restaurants, inspections WHERE restaurants.name != '' AND restaurants.ID
= inspections.ID ORDER BY name;"; $result =
mysql_query($sql) or die(mysql_error());
//trying to grab it by ranges from the db? $rows
= mysql_num_rows($result); $page_rows = 100;
$last_row = ceil($rows/$page_rows);
if ($rangenum < 1) {
$rangenum = 1; }
elseif ($rangenum > $last_row) {
$rangenum = $last_row; }
//This sets the range to display in our
query $max = 'limit ' .($rangenum - 1) * $page_rows
.',' .$page_rows;
// Process all results
into $_SESSION array
$position = 1; while
($row = mysql_fetch_array($result)) {
$_SESSION['fullRestaurantList'][$position] = $row;
$position++; }
$_SESSION['totalNumberOfRestaurants'] = $position;
}
?> </td>
<td rowspan="5" width="400"
height="180" valign="top"> <div
style="vertical-align:text-top" <h3></h3>
<img src="http://www.news-leader.com/graphics/pixelclear.gif"
width="400" height="1" />
</div> </td>
</tr>
<tr> <td width="20%"
align="right" height="30"><div
class="admin_Caption">Name:</div></td>
<td width="80%" height="30"><input name="searchname"
type="text" size="30" <?php
if(isset($_SESSION['searchname'])) {
echo " value='" . $_SESSION['searchname'] .
"'"; } ?>
> </td>
</tr> <tr>
<td width="20%" align="right" height="30"><div
class="admin_Caption">Address:</div></td>
<td width="80%"><input name="address" type="text"
size="30" <?php
if(isset($_SESSION['address'])) {
echo " value='" . $_SESSION['address'] . "'";
} ?>
></td> </tr>
<tr> <td
colspan="2" align="left"><input name="Submit"
type="submit" value="Search"> <br
/><br /> <a
href="restaurants.php?show=all">Show all Restaurants</a>
<br /><br /> </td>
</tr> <tr> <td
colspan="3"><HR></td> </tr>
</table> </form>
<?php
if(isset($_GET['Page'])) $Page =
$_GET['Page']; else $Page = 1;
$PerPage = 30;
if(isset($_SESSION['numResults'])) {
$TotalPages = ceil($_SESSION['numResults']/$PerPage);
} else {
$TotalPages = 1; }
$StartPage = ($Page - 1) * $PerPage; //
Output table header ?>
<TABLE WIDTH="100%" cellspacing="3"
cellpadding="4"> <TR>
<TD ALIGN="CENTER" width="50" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2"
COLOR="#FFFFFF"><B>Name</B></FONT></TD>
<TD ALIGN="CENTER" width="50" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2"
COLOR="#FFFFFF"><B>Address</B></FONT></TD>
<TD ALIGN="CENTER" width="20" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2"
COLOR="#FFFFFF"><B>Inspection Date</B></FONT></TD>
<TD ALIGN="CENTER" width="20" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2"
COLOR="#FFFFFF"><B>Type</B></FONT></TD>
<TD ALIGN="CENTER" width="120" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2"
COLOR="#FFFFFF"><B>Notes</B></FONT></TD>
<TD ALIGN="CENTER" width="15" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2" COLOR="#FFFFFF"><B>#
Critical Violations</B></FONT></TD> <TD
ALIGN="CENTER" width="140" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2"
COLOR="#FFFFFF"><B>Violations</B></FONT></TD>
<TD ALIGN="CENTER" width="15" VALIGN="TOP"
BGCOLOR="#000000"><FONT size="-2" COLOR="#FFFFFF"><B>#
Non-Critical</B></FONT></TD> </TR>
<?php // Control logic
to determine if displaying results or not
if(isset($_SESSION['results'])) {
// Output results
if($_SESSION['results'] == "No results found") {
// Query came back with nothing ?>
<TR bgcolor="<?php echo $row_color ?>">
<td> <p>No results where found
matching your criteria.</p> </td>
</tr> <?php
} else {
// There are results $ID=
$_SESSION['results'][$i]['ID'];
for($i = $StartPage + 1; $i < ($PerPage*$Page) && $i <
$_SESSION['numResults']; $i++) {
$color1 = "#FFFFFF";
$color2 = "#EAEAEA";
$row_color = ($i % 2) ? $color1 : $color2; ?>
<TR bgcolor="<?php echo $row_color ?>">
<TD><FONT SIZE="-2"><a href="view.php?ID=<?php echo
($_SESSION['results'][$i]['ID']); ?>"><?php echo
htmlspecialchars(stripslashes($_SESSION['results'][$i]['name']));
?></a></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['address']); ?></FONT></TD>
<TD><FONT SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['inDate']); ?></FONT></TD>
<TD><FONT SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['inType']); ?></FONT></TD>
<TD><FONT SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['notes']); ?></FONT></TD>
<TD><FONT SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['critical']);
?></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['cviolations']);
?></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['results'][$i]['noncritical']);
?></FONT></TD> </TR>
<?php } ?>
</TABLE> <?php
} }
else { // No results, so output all
restaurants sorted alphabetically
// Else, list is already built.
for($i = $StartPage + 1; $i < ($PerPage*$Page)
&& $i < $_SESSION['totalNumberOfRestaurants']; $i++)
{ $color1 = "#FFFFFF";
$color2 = "#EAEAEA";
$row_color = ($i % 2) ? $color1 : $color2; ?>
<TR bgcolor="<?php echo $row_color ?>">
<TD><FONT SIZE="-2"><a
href="view.php?ID=<?php echo
$_SESSION['fullRestaurantList']['ID']?>"><?php echo
htmlspecialchars(stripslashes($_SESSION['fullRestaurantList'][$i]['name']));
?></a></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['address']);
?></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['inDate']);
?></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['inType']);
?></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['notes']);
?></FONT></TD> <TD
align="center"><FONT SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['critical']);
?></FONT></TD> <TD><FONT
SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['cviolations']);
?></FONT></TD> <TD
align="center"><FONT SIZE="-2"><?php echo
stripslashes($_SESSION['fullRestaurantList'][$i]['noncritical']);
?></FONT></TD> </TR>
<?php } ?>
</TABLE> <?php
// Calculate total number of pages $TotalPages =
ceil($_SESSION['totalNumberOfRestaurants']/$PerPage);
}
// Output paging control // Only need to output this if there is more
than 1 page of results if ($TotalPages > 1)
{ echo "<hr /> \n
<p>Click on the following links for more pages of results</p> \n <p>";
if ($Page != 1) {
// If on first page, no need for Previous Page button
echo "<a href='restaurants.php?Page=";
echo $Page-1; echo "'><< Previous</a>
"; }
for($i = 1; $i <= $TotalPages; $i++) {
if($i == $Page) {
// Outputting link for current page - doesn't need to be a link
echo "$i "; }
else { // Outputting link for other
pages - needs to be a link echo "<a
href='restaurants.php?Page=$i'>$i</a> "; }
}
if ($Page != $TotalPages) {
// If on last page, no need for Next Page button echo
"<a href='restaurants.php?Page="; echo $Page+1;
echo "'>Next >></a> ";
} }
?>