Page 1 of 1

Nested Table Trouble

Posted: Mon Apr 04, 2005 9:05 pm
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

Posted: Mon Apr 04, 2005 9:32 pm
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>';
}
?>