943,822 Members | Top Members by Rank

Ad:
  • PHP Discussion Thread
  • Unsolved
  • Views: 3181
  • PHP RSS
Jun 23rd, 2004
0

Problem with foreach when using linking

Expand Post »
I am trying to use the command foreach to create a drop down menu. That I can usually do, the problem is I am also adding some linking. Here is some my code:
<?sql

$sql2 = "SELECT mn.map, mn.route FROM maps m JOIN map_name mn ON (m.map_name = mn.map) WHERE `ship`='".$POST['ship']."'";
$result2 = mysql_query($sql2)
or die("Query Error".mysql_error());
while ($row = mysql_fetch_array($result2)) {
$mapname[$row['mn.map']] = $row['mn.route'];
}
?>

<form action="edit_map_which.php" method="post">
<table border=0 cellspacing=1>
<tr>
<td>
Map :
</td>
<td>
<SELECT name="map">
<option value="" SELECTED>Select a Map</option>
<?php
foreach( $mapname as $map => $route ){ **
?>
<option value="<?php echo $map ?>"><?php echo $route ?></option>
<?php }
?>
</SELECT>
</td>
</tr>
<tr>
<td>
<INPUT type="submit" name="Submit" value="Submit">
</td>
</tr>
</table>

** I get the error Invalid argument supplied for foreach() for this line.

I've tried quite a few different things for this, and I now feel like I am beating my head against the wall. Thanks for the help.
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
samergamer is offline Offline
1 posts
since Jun 2004
Jun 24th, 2004
0

Re: Problem with foreach when using linking

Sounds like that your query is pulling nothing. What I would do, is above the while() section of your code, add [php]$mapname = array();[/php] This will force $mapname to be an array - otherwise, if your query pulls nothing, then the while() block won't be interpreted and hence your mapname is undefined. So when foreach() asks for it, it finds that its not an array and starts whining. Forcing $mapname to be an array will just mean that the foreach doesn't do anything if its empty.
Obviously, you need to put this code above wherever else that you may have used $mapname as it will destroy it first.
I do, however, have some concerns about your query.
PHP Syntax (Toggle Plain Text)
  1. `ship`='".$POST['ship']."'";
  2.  
Should ship, not in fact be, m.ship or mn.ship?
Team Colleague
Reputation Points: 63
Solved Threads: 6
Supreme Evil Overlord
Roberdin is offline Offline
282 posts
since Feb 2003

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in PHP Forum Timeline: I need help with a parse error!
Next Thread in PHP Forum Timeline: Automatically writing webpages by submitting a form...





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC