Member 13153537 Ответов: 1

Как сделать последний дочерний элемент кликабельным в подменю с помощью PHP и my SQL


как сделать последний дочерний элемент кликабельным в подменю php с помощью таблицы mysql.
пожалуйста, помогите мне я попробовал какой-то код, но он работает в некоторых случаях он на самом деле не собирается в другой цикл, если он идет, то моя работа будет сделана, как это сделать, пожалуйста, помогите мне.

Что я уже пробовал:

<pre><?php
mysql_connect('localhost','root','');
mysql_select_db("test");


function submenu($parentid=0){
    $sql=mysql_query("SELECT * FROM test WHERE refid=".$parentid);
    {
      echo '<ul>';
            while($row=mysql_fetch_array($sql))
            {
              if(mysql_num_rows($sql)>0)
              {
              //echo '<li><a href="'.$row['userdefined'].'">'.$row['name'].'</a>';
              echo '<li>'.$row['name'];
              submenu($row['id']);
              echo '</li>';}
              else{
               echo '<ul>';
               echo '<li><a href="'.$row['userdefined'].'">'.$row['name'].'</a>';
               submenu($row['id']);
               echo '</li>';
            }
          }
          echo '</ul>';
      }

}
submenu();

 ?>

Suvendu Shekhar Giri

Если он не идет в блок ELSE то вам нужно проверить запрос упомянутый выше refid и проверьте, действительно ли он получает запись.

Member 13153537

да, это становится рекордом.
я пробовал другой код, так или иначе он работает нормально.я хочу, чтобы только дочерние элементы кликабельны remaning должен показывать только текст я бы сделал это .пожалуйста, помогите мне.я новичок в php.я публикую свой код.заранее спасибо.

<?php
функцию mysql_connect('localhost'а,'корень',");
mysql_select_db("тест");


подменю функции($parentid=0){
$sql=mysql_query("SELECT * FROM test WHERE refid=".$parentid);
{
эхо '';
while($row=mysql_fetch_array($sql))
{
if(mysql_num_rows($sql)>0)
{

$sql1=mysql_query("SELECT * FROM test where refid=".$row['id']);
if(mysql_num_rows($sql1)>0){

echo ".$row['name'];
подменю($row['id']);
эхо '';}
еще{

эхо ''.$строки['название']'.';
подменю($row['id']);
эхо '';
}
}
эхо '';
}

}
}
подменю();

?>

1 Ответов

Рейтинг:
0

EZW

Как насчет перехода от этих mysql_functions к mysqli или pdo? Эти функции устарели начиная с PHP 5.5.0 и полностью удалены в PHP 7.0.0. в противном случае, если вам все еще нужно это сделать, вы пробовали использовать инкрементный счетчик вместо использования mysql_num_rows?

function submenu($parentid = 0)
{
    $sql = mysql_query("SELECT * FROM test WHERE refid=" . $parentid);
    
    echo '<ul>';
    
    $numRows = mysql_num_rows($sql);

    // I don't remember exactly, the counter should start either with a 0 or 1
    $i = 0;
    
    while($row = mysql_fetch_array($sql))
    {
        if($numRows > $i)
        {
            //echo '<li><a href="' . $row['userdefined'] . '">' . $row['name'] . '</a>';
            echo '<li>' . $row['name'];
            submenu($row['id']);
            echo '</li>';
        }
        else
        {
            echo '<li><a href="' . $row['userdefined'] . '">' . $row['name'] . '</a>';
            submenu($row['id']);
            echo '</li>';
        }
        $i++;
    }
    
    echo '</ul>';
}