Используйте операторы mysqli, так как операторы mysql устарели.Попробуйте,
$con = mysqli_connect($servername, $username, $password, $db);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo '<ul id="main-menu" class="main-menu">';
$selectparent = "SELECT * FROM tabs WHERE isparent>0";
$runparent= mysqli_query($con, $selectparent);
$rowparent = mysqli_fetch_all($runparent,MYSQLI_ASSOC);
for($counterparent=0;$counterparent < count($rowparent);$counterparent++){
$parentid=$rowparent[$counterparent]['Id'];
$parenttext=$rowparent[$counterparent]['text'];
$parenthassub=$rowparent[$counterparent]['hassub'];
echo '<h4>'.$parenttext.'</h4>';
recursive_loop($con,$parentid,$parenthassub);
}
echo '</ul>';
function recursive_loop($con, $id, $hassub){
if($hassub == 0)
return;
echo '<ul>';
$selectparent = "SELECT * FROM tabs WHERE parentid = $id";
$runparent= mysqli_query($con, $selectparent);
if($runparent){
$rowparent = mysqli_fetch_all($runparent,MYSQLI_ASSOC);
for($counterparent=0;$counterparent < count($rowparent);$counterparent++){
$parentid=$rowparent[$counterparent]['Id'];
$parenttext=$rowparent[$counterparent]['text'];
$parenthassub=$rowparent[$counterparent]['hassub'];
echo '<li class="has-sub">';
echo $parenttext;
echo'</li>';
recursive_loop($con,$parentid,$parenthassub);
}
}
echo '</ul>';
}
Я использовал рекурсию, поскольку мы не знаем, насколько глубоко ваше меню.