Nested Table Trouble

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
soianyc
Forum Commoner
Posts: 61
Joined: Wed Mar 30, 2005 2:48 pm
Location: NY

Nested Table Trouble

Post by soianyc »

I have created a menu which has a menu and a submenu in it. I have set up a loop to grab the data from the tables and put them in. I made an if statement to get the submenu inside the menu, which works on the top menu. If i go down to a different menu item, the first link is correct, but the others links show the same exact link.

here is the code

Code: Select all

<?
function coatmenu(){
?>

<?php

include 'connect.php';

$query="SELECT * FROM menu";
$subquery="SELECT * FROM submenu";
$sublink="SELECT * FROM sublink";
$mainmenu="SELECT * FROM mainmenu";

$result=mysql_query($query);
$subresult=mysql_query($subquery);
$sublinkresult=mysql_query($sublink);
$mainresult=mysql_query($mainmenu);


$num=mysql_numrows($result);
$subnum=mysql_numrows($subresult);
$sublinknum=mysql_numrows($sublinkresult);

$k=0;
$i=0;
$j=0;

?>
<table cellspacing="0" width="150" >
	<tbody>
		<tr><td class="logo"><a class="pix" href="http://www.treschicfurs.com"><img src="pix/smlogo.gif"></a></td></tr>
		
      <?php
	   while ($i < $num) {

		$name=mysql_result($result,$i,"name");
	   $mainlink=mysql_result($mainresult,$i,"name");
	   
	    echo '<tr><td class="leftmenu"><a href="'.$mainlink.'">'.$name.'</a></td></tr>';
		if ($k == 0){
		
		while ($j < $subnum){
		
		$sublinkname=mysql_result ($sublinkresult, $j, "name");
		$subname=mysql_result ($subresult,$j,"name");
		echo '<tr><td class="leftsubmenu"><a href="'.$sublinkname.'">'.$subname.'</a></td></tr>';
		++$j;
 		}	
}
		++$k;
		++$i;
}
		

mysql_close();
?>
    </tbody>
</table>
		
<?
}
?>



<?
function jacketmenu(){
?>

<?php

include 'connect.php';

$query="SELECT * FROM menu";
$subquery="SELECT * FROM submenu";
$sublink="SELECT * FROM sublink";
$mainmenu="SELECT * FROM mainmenu";

$result=mysql_query($query);
$subresult=mysql_query($subquery);
$sublinkresult=mysql_query($sublink);
$mainresult=mysql_query($mainmenu);

$num=mysql_numrows($result);
$subnum=mysql_numrows($subresult);
$sublinknum=mysql_numrows($sublinkresult);


$i=0;
$j=0;
$k=0;

?>
<table cellspacing="0" width="150" >
	<tbody>
		<tr><td class="logo"><a class="pix" href="http://www.treschicfurs.com"><img src="pix/smlogo.gif"></a></td></tr>
		
      <?php
	   while ($i < $num) {

		$name=mysql_result($result,$i,"name");
		$mainresult=mysql_result($mainresult,$i,"name");
	   
	    echo '<tr><td class="leftmenu"><a href="'.$mainresult.'">'.$name.'</a></td></tr>';
		if ($k == 1){
		
		while ($j < $subnum){
		
		$sublinkname=mysql_result ($sublinkresult, $j, "name");
		$subname=mysql_result ($subresult,$j,"name");
		echo '<tr><td class="leftsubmenu"><a href="'.$sublinkname.'">'.$subname.'</a></td></tr>';
		++$j;
 		}	
}
		++$k;
		++$i;
}
I thought i had it right but it doesn't work correct.

Thanx

-soianyc
User avatar
infolock
DevNet Resident
Posts: 1708
Joined: Wed Sep 25, 2002 7:47 pm

Post by infolock »

well, one thing to point out is jacketmenu and coatmenu functions are IDENTICAL!! you could call the same function in both areas and it would still perform how you are wanting it to..

anyways, i rewrote your code.. try this and see how it does :

Code: Select all

<?php
include('connect.php');
function coatmenu()
{
	$query = mysql_query("SELECT * FROM menu") or die(MySQL_Error());
	$sub_query = mysql_query("SELECT * FROM submenu") or die(MySQL_Error());
	$sub_link = mysql_query("SELECT * FROM sublink") or die(MySQL_Error());
	$main_menu = mysql_query("SELECT * FROM mainmenu") or die(MySQL_Error());
	/*
	$result=mysql_query($query);
	$subresult=mysql_query($subquery);
	$sublinkresult=mysql_query($sublink);
	$mainresult=mysql_query($mainmenu);
	*/
	$num=mysql_numrows($query);
	echo '<table cellspacing="0" width="150" ><tbody><tr><td class="logo"><a class="pix" href="http://www.treschicfurs.com"><img src="pix/smlogo.gif"></a></td></tr>';
	for($i=0; $i<$num; $i++)
	{
		$name = mysql_result($query,$i,"name");
		$mainlink = mysql_result($main_menu, $i,"name");
		echo '<tr><td class="leftmenu"><a href="'.$mainlink.'">'.$name.'</a></td></tr>';
		$sublinkname = mysql_result ($sub_link, $i, "name");
		$subname = mysql_result ($sub_query,$i,"name");
		echo '<tr><td class="leftsubmenu"><a href="'.$sublinkname.'">'.$subname.'</a></td></tr>';
	}
	mysql_close();
	echo '</tbody></table>';
}
?>
Post Reply