使用 php 和 mysql 的菜单问题

Posted

技术标签:

【中文标题】使用 php 和 mysql 的菜单问题【英文标题】:menu problems using php and mysql 【发布时间】:2014-06-17 21:22:50 【问题描述】:

我有一个包含两列名为 rugby_union 和 matchleague 的表。 我创建了 2 个查询来显示不同的 rugby_union 和 matchleague。当我在菜单上有下拉菜单时,它必须仅显示来自 rugby_union 的 matchleague。 我正在使用的代码:

$sql="select distinct(union_league) from teams where league_complete ='No' ";
$query = mysql_query($sql);
while($row = mysql_fetch_array($query)) 
$matchleaguecomp[] = $row; 


$sql1="select distinct(rugby_union) AS rugby_union from teams where league_complete ='No' ";
$query1 = mysql_query($sql1);
while($row1 = mysql_fetch_array($query1)) 
$union_list[] = $row1; 

导航栏中的 php 代码:

<?php                       
    for($i=0;$i<count ($union_list);$i++)  
?>
<li>
    <a href="#"><?php echo $union_list[$i][0]; ?></a>
    <ul class="dropdown-menu" 
         style="position: absolute; left: 160px; top: 0px; display: none;
                height: <?php if(count($matchleaguecomp)>0) 
                                  echo '260px;'; 
                               else  
                                  echo (count($matchleaguecomp)*26).'px'; 
                               ?>  
                overflow: auto;">
        <?php
            for($i=0;$i<count($matchleaguecomp);$i++)                      
                //$fixture_name=$url->encode("name=".$matchleaguecomp[$i][0]);
            $fixture_name="name=".$matchleaguecomp[$i][0];
        ?>
        <li>
            <a href="<?php echo $include_path.'new_logs.php?'.$fixture_name; ?>">
                <?php echo $matchleaguecomp[$i][0]; ?>
            </a>
        </li>
        <?php   ?>
    </ul>
</li>
<?php   ?> 

提前谢谢,我不知道为什么它不显示联盟的工会列表

【问题讨论】:

你永远不会从 $union_list 输出任何东西,而且你构建的数组是错误的 - 你将所有内容都转储到数组键 [0] 中,这意味着你用下一个获取的记录覆盖之前的每条记录. 嗨,Marc B,请您编辑代码以正确显示信息 while(...) $union_list[] = $row1 我确实修复了它,但无法显示联合列表 mysql_query 是一个过时的接口,不应在新应用程序中使用,并将在未来的 PHP 版本中删除。像PDO is not hard to learn 这样的现代替代品。如果您是 PHP 新手,PHP The Right Way 之类的指南可以帮助您解释最佳实践。 【参考方案1】:

首先,请注意@tadman 所说的 mysql_query 已过时... 这是您的固定代码:

$sql="select distinct(union_league) as `union_league` from teams where league_complete ='No' ";
$query = mysql_query($sql);
while($row = mysql_fetch_array($query)) 
$matchleaguecomp[] = $row['union_league']; // you need to get the returned value from the array


$sql1="select distinct(rugby_union) AS rugby_union from teams where league_complete ='No' ";
$query1 = mysql_query($sql1);
while($row1 = mysql_fetch_array($query1)) 
$union_list[] = $row1['rugby_union']; // you need to get the returned value from the array

【讨论】:

Len,感谢 union_league 的工作,但 rugby_unions 仍然有相同的结果,只显示 1 个联合 当您从命令行或 PHPMyAdmin 中运行该查询时,您会得到多少? Len,当我在 PHPMyadmin 中运行时,我得到 2,当我运行 print_r 时,它会显示所有内容 为了好玩,将 AS rugby_union 更改为 AS rugby_union。它不应该有什么不同,但至少查询的结构将与给你成功的那个结构相匹配。我见过奇怪的东西...... sql 查询 100% 正确,是 PHP 脚本导致问题。对于 union_league,它 100% 有效

以上是关于使用 php 和 mysql 的菜单问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 和 mySql 从下拉菜单中选择选项

PHP / MySQL 构建树形菜单

PHP、HTML JS MySQL 动态下拉菜单

从mysql填充的PHP下拉菜单不起作用

jQuery+PHP+MySQL实现二级联动下拉菜单

需要帮助使用 MySQL 相关的下拉菜单创建添加行功能