2012-10-20 215 views
0

我有這個代碼不工作PHP變量在MySQL查詢

<body> 
<?php $outerSql = mysql_query("select * from gree_menu"); ?> 
<ul> 
    <?php 
    while($outerRow = mysql_fetch_array($outerSql)) { 
     $outerMenu = $outerRow['menu_name']; 
     $outerId = $outerRow['menu_id']; 
    ?> 
     <li> 
     <?=$outerMenu; ?> 
     <?php $innerSql = mysql_query("SELECT sp.* FROM gree_menu gm INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id WHERE gm.menu_id = {$outerID}");?> 

     <ul> 
      <?php 

      while($innerRow = mysql_fetch_array($innerSql)) { 
       $innerMenu = $innerRow['prod_name']; 
      ?> 
      <li><?= $innerMenu;?></li> 
      <?php 
      } 
      ?> 
     </ul> 
     </li> 
    <?php 
    } 
    ?> 

</ul> 

線,是造成我的麻煩是

<?php $innerSql = mysql_query("SELECT sp.* FROM gree_menu gm INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id WHERE gm.menu_id = {$outerID}");?> 

如果我給查詢作爲

<?php $innerSql = mysql_query("SELECT sp.* FROM gree_menu gm INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id WHERE gm.menu_id = 7");?> 

它工作正常。但我希望它是動態的。對於menu_id有效值爲7,8,9

請幫

+1

你犯了一個錯字,它應該是'outerID',而不是'outerId'。 PHP區分大小寫。我建議使用複製/粘貼變量名稱,或使用具有自動完成功能的文本編輯器(試用Sublime Text或Eclipse)。使用複製/粘貼或自動完成將通過減少類似這樣的錯字來節省時間和挫敗感。 –

+0

對不起,錯字 – Vivek

+0

謝謝大家的回覆.. – Vivek

回答

2

試試這個

<?php $innerSql = mysql_query("SELECT sp.* FROM gree_menu gm INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id WHERE gm.menu_id =".{$outerID});?>

2

你有錯字在outerID,由@Abhi貝克特提到不outerId。

$outerId = $outerRow['menu_id']; 

您在查詢中使用了$outerID。所以我不認爲你的查詢有錯誤。糾正錯字,然後重試。

如果您想更改查詢試圖像下面

$innerSql = mysql_query("SELECT sp.* FROM gree_menu gm 
      INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id 
      WHERE gm.menu_id = ".$outerId); 
0

你可以試試這個

<?php $innerSql = mysql_query("SELECT sp.* FROM gree_menu gm INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id WHERE gm.menu_id = ".$outerID."");?> 
0
<?php $innerSql = mysql_query("SELECT sp.* FROM gree_menu gm INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id WHERE gm.menu_id = ".$outerID);?> 
0
mysql_query("SELECT sp.* FROM gree_menu gm 
INNER JOIN silicon_prod sp ON gm.menu_id = sp.menu_parent_id 
WHERE gm.menu_id =$outerID");