2015-05-07 4 views
0

Я боролся с этим весь день: Я показываю меню с подменю, этот же код работает в производстве, ведь мой случай еще более странный. моя текущая среда разработки использует php 5.4.while loop in mysql_fetch_assoc не работает

В en envroment этот код приводит к пустой странице без ошибок (с display_errors и error_log активированы и работают). если вместо того, чтобы идти на второе время, я просто запустить через него один раз, все работает (но только показывает один пункт)

$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>"; 
} 

любой подсказку о том, почему вторых, пока сбое моего приложения без ошибок?

UPDATE: полная страница здесь: http://pastebin.com/FPrQgsbE

+0

Почти 100% это '$ db_conn', удалите его –

+0

@Hanky ​​웃 Panky Почему? Это необязательный аргумент, нет никакого вреда в предоставлении его явно. – Barmar

+0

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

ответ

0

Просто проверить на наличие ошибок первых:

$resultado = mysql_query($q,$db_conn); 
if (!$resultado) { 
    die('Invalid query: ' . mysql_error()); 
} 
    while($rowsubmennu = mysql_fetch_assoc($resultado)){ 

И $db_conn не установлен в публикуемую фрагменте кода. Где он был инициализирован?

+0

nope, такой же. Должен заметить, что ошибка - это не просто mysql, а falis для загрузки любой части страницы, и никакая ошибка не возвращается. Этот же код работает на другой машине. Если я удаляю второй, пока while ($ rowsubmennu = mysql_fetch_assoc ($ resultado)) { ... } и только сделать: $ rowsubmennu = mysql_fetch_assoc ($ resultado) он работает (только showng один ряд, конечно) – monxas

+0

пост полный код этой страницы – Alex

+0

будучи меню, код довольно много его. этот файл требуется практически на любой странице приложения, и только некоторые html-коды оставлены для показа. но хорошо, я поделюсь им (обновление выше) – monxas