我已经纠结了一整天:我正在显示一个带有子菜单的菜单,同样的代码在生产环境中运行,这让我的情况变得更加奇怪。我目前的开发环境使用的是php 5.4。
在开发环境中,此代码将生成一个没有错误的空页面( display_errors和error_log已激活并正常工作)。如果不是转到第二个while,而是只运行一次,一切都会正常(但只显示一项)
$query = 'SELECT * FROM permisos as p LEFT JOIN secciones_web as s ON p.id_seccion_web = s.id WHERE s.parent_id = 0 AND s.activo = 1 AND (p.seccion = "'.$_SESSION["user_section"].'" OR p.usuario="'.$_SESSION["user"].'") GROUP BY p.id_seccion_web ORDER BY s.orden ASC';
$results = mysql_query($query);
$menu = "";
while($rowp = mysql_fetch_assoc($results)){
$menu.='<li class="submenu"><a href="#"><i class="icon '.$rowp["icon"].'"></i> <span>'.$rowp["nombre"].'</span></a><ul>';
$q = 'SELECT * FROM permisos as p LEFT JOIN secciones_web as s ON p.id_seccion_web=s.id WHERE s.parent_id='.$rowp["id"].' AND s.activo=1 AND (p.seccion = "'.$_SESSION["user_section"].'" OR p.usuario="'.$_SESSION["user"].'") GROUP BY p.id_seccion_web ORDER BY s.orden ASC';
$resultado = mysql_query($q,$db_conn);
while($rowsubmennu = mysql_fetch_assoc($resultado)){
if($_SESSION["user_section"] == "Almacén" && $rowsubmennu["url"] == "pedido-almacen.php"){
$menu.='<li><a href="'.$rowsubmennu["url"].'" class="navi">'.$rowsubmennu["nombre"].'<span class="label label-pedidos">0</span></a></li>';
}else{
$menu.='<li><a href="'.$rowsubmennu["url"].'" class="navi">'.$rowsubmennu["nombre"].'</a></li>';
}
}
$menu.= "</ul></li>";
}有没有线索说明为什么第二个while没有错误地使我的应用崩溃?
更新:完整页面在这里:http://pastebin.com/FPrQgsbE
发布于 2015-05-08 00:58:27
只需先检查错误:
$resultado = mysql_query($q,$db_conn);
if (!$resultado) {
die('Invalid query: ' . mysql_error());
}
while($rowsubmennu = mysql_fetch_assoc($resultado)){并且在发布的代码片段中没有设置$db_conn。它是在哪里初始化的?
https://stackoverflow.com/questions/30106997
复制相似问题