2015-01-16 9 views
1

В меню «меню» есть 4 подменю, которые представляют собой напитки, основные, закуски и десерты. Когда пользователи нажимают напитки, они будут перенаправлены на напитки и одинаково, когда идут другие кнопки подменю. Но я хочу отображать все меню, когда пользователи нажимают кнопку «меню». Я знаю, что мне нужно использовать «else», но меню вообще не отображается.Все меню не отображается

menu.php

<div class="products"> 
<?php 

if (isset($_GET['id'])) { 
//current URL of the Page. basket_update.php redirects back to this URL 
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 

$results = $mysqli->query("SELECT * FROM menu WHERE MenuTypeID = ".$_GET['id']); 
$currency = '$'; 

if ($results) { 

    //fetch results set as object and output HTML 
    while($obj = $results->fetch_object()) 
    { 
     echo '<div class="product">'; 
     echo '<form method="post" action="basket_update.php">'; 
     echo '<div class="product-thumb"><img src="'.$obj->MenuPicture.'" /></div>'; 
     echo '<div class="product-content"><h3>'.$obj->MenuName.'</h3>'; 
     echo '<div class="product-desc">'.$obj->MenuDescription.'</div>'; 
     echo '<div class="product-info">'; 
     echo 'Price: '.$currency.$obj->MenuPrice.' | '; 
     echo 'Qty <input type="text" name="menu_qty" value="1" size="1" />'; 
     echo '<button class="add_to_basket">Add To Basket</button>'; 
     echo '</div></div>'; 
     echo '<input type="hidden" name="MenuID" value="'.$obj->MenuID.'" />'; 
     echo '<input type="hidden" name="type" value="add" />'; 
     echo '<input type="hidden" name="return_url" value="'.$current_url.'" />'; 
     echo '</form>'; 
     echo '</div>'; 
    } 
} 

?> 
<?php 
}else{ 
     $query2 = "SELECT * FROM Menu"; 
     $result2 = mysql_query($query2); 
    } 
?> 

</div> 
+1

** ВНИМАНИЕ: ** Вы обнажая свою базу данных на [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection). Убедитесь, что вы проверяете и дезактивируете все входные данные пользователя. ([параметры привязки] (http://php.net/manual/en/mysqli-stmt.bind-param.php)) –

+0

В первом запросе вы используете меню как имя таблицы. Но во втором запросе это выглядит как Меню? – vural

+0

- это имя таблицы, чувствительной к регистру? @vural –

ответ

1

Попробуйте этот код.

<div class="products"> 
<?php 

if (isset($_GET['id'])) { 
    $results = $mysqli->query("SELECT * FROM menu WHERE MenuTypeID = ".$_GET['id']); 
} 
else{ 
$results = $mysqli->query("SELECT * FROM menu"); 
} 
    //current URL of the Page. basket_update.php redirects back to this URL 
    $current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 


$currency = '$'; 

if ($results) { 

//fetch results set as object and output HTML 
while($obj = $results->fetch_object()) 
{ 
    echo '<div class="product">'; 
    echo '<form method="post" action="basket_update.php">'; 
    echo '<div class="product-thumb"><img src="'.$obj->MenuPicture.'" /></div>'; 
    echo '<div class="product-content"><h3>'.$obj->MenuName.'</h3>'; 
    echo '<div class="product-desc">'.$obj->MenuDescription.'</div>'; 
    echo '<div class="product-info">'; 
    echo 'Price: '.$currency.$obj->MenuPrice.' | '; 
    echo 'Qty <input type="text" name="menu_qty" value="1" size="1" />'; 
    echo '<button class="add_to_basket">Add To Basket</button>'; 
    echo '</div></div>'; 
    echo '<input type="hidden" name="MenuID" value="'.$obj->MenuID.'" />'; 
    echo '<input type="hidden" name="type" value="add" />'; 
    echo '<input type="hidden" name="return_url" value="'.$current_url.'" />'; 
    echo '</form>'; 
    echo '</div>'; 
} 
} 

?> 

+0

Да, это работает. Спасибо! –

+1

Не могли бы вы объяснить, что вы изменили? –

+0

Если в $ _GET ['id'] указано значение, то извлекайте продукты в этой конкретной категории. В противном случае выберите все продукты. –

Смежные вопросы