Vivek
Vivek

Reputation: 382

PHP Variable in MySQL Query

I have this code which is not working

  <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>

The line that is causing me trouble is

 <?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}");?>

If i give the query as

 <?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");?>

it works fine. But i want it to be dynamic. Valid values for menu_id are 7, 8, 9

Please help

Upvotes: 0

Views: 123

Answers (5)

Justin John
Justin John

Reputation: 9635

Your have typo in outerID, not outerId as mentioned by @Abhi Beckert.

$outerId = $outerRow['menu_id'];

You used $outerID in query. So I don't think your query have errors. Correct the typo and try again.

If you like to change the query try like below

$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);

Upvotes: 2

Arun Killu
Arun Killu

Reputation: 14263

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");

Upvotes: 0

Mohit Bumb
Mohit Bumb

Reputation: 2493

<?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);?>

Upvotes: 0

Md. Mahabubur Rahman
Md. Mahabubur Rahman

Reputation: 820

You may try this one

 <?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."");?>

Upvotes: 0

Abubakkar
Abubakkar

Reputation: 15664

Try this

<?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});?>

Upvotes: 2

Related Questions