将特定数据库值显示在表

时间:2017-12-17 11:30:15

标签: php mysql

我的数据库中有两个表。即 food_dish foodcat 。食物菜是用于菜肴,而foodcat是用于食物的类别。

这是food_dish中的一个例子:

dish_id | dish name | dish_cat 1 | Plain Rice | 1 2 | Pork Chop | 2 3 | Buttered Rice | 1

并在foodcat:

cat_id | cat_name 1 | Rice 2 | Pork

我想在我的 menurice.php 表中仅显示普通米饭。我想知道我是否可以将 dish_cat cat_id 相关联,以便我致电 < em> cat_id 1 它只会显示 Rices 的名称

 <table class="table table-striped table-bordered table-hover" id="dataTables-example">
 <thead>
 <tr>           
 <th>ID</th>
 <th>Dish Name</th>
 <th> Actions </th>
 </tr>
 </thead>
 <tbody>
 <?php
 include 'menuactions/foodconnect.php';
 $sql1= "SELECT * FROM `food_dish`";
 $data= mysqli_query($conn,$sql1) or die("Connection Failed!");
 while($row = mysqli_fetch_array($data, MYSQLI_ASSOC)){
 ?>

 <tr class="odd gradeX">
 <td> <?php echo $row['dish_id']?> </td>
 <td> <?php echo $row['dish_name']?>  </td>                                    
 <td> 

 <div class='btn-group'>
 <form action='deleterice.php' method='POST'>
  <button class='btn btn-default' type='submit'><a class='fa fa-trash-o'> Delete</a></button>
          <input type='hidden' value=" <?php echo $row['dish_id'];?>" name="iduse">
           </form>
         </div>
       </td>
       </tr>

         <?php 
     }
     ?>

3 个答案:

答案 0 :(得分:0)

你的意思是,当你去menurice.php?cat_id=1时,它应该只显示Rices?

使用此查询:SELECT * FROM food_dish WHERE dish_cat = ?并将$_GET['cat_id']绑定到查询。

例如:

$stmt = mysqli_prepare($conn, "SELECT dish_id, dish_name FROM food_dish WHERE dish_cat = ?");

mysqli_stmt_bind_param($stmt, "i", $_GET['cat_id']);
mysqli_stmt_execute($stmt);

mysqli_stmt_bind_result($stmt, $dish_id, $dish_name);

while (mysqli_stmt_fetch($stmt)) {
    ?>

<tr class="odd gradeX">
  <td> <?php echo $dish_id; ?> </td>
  <td> <?php echo $dish_name; ?> </td>
  <td>
    <div class='btn-group'>
      <form action='deleterice.php' method='POST'>
        <button class='btn btn-default' type='submit'><a class='fa fa-trash-o'> Delete</a></button>
        <input type='hidden' value="<?php echo $dish_id; ?>" name="iduse">
      </form>
    </div>
  </td>
</tr>

    <?php
}

答案 1 :(得分:0)

我想您要使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <body> <table> <thead> <th>Header1</th> <th>Header2</th> </thead> <tbody> <tr> <td><input type="checkbox" id=0 /></td> <td>TEXT1</td> </tr> <tr> <td><input type="checkbox" id=1 checked/></td> <td>TEXT2</td> </tr> </tbody> </table> </body> </html>表中的名称来代替foodcat表中的名称。

因此您可以使用food_dishinner join命令。以下sql命令将起作用:

union

它将产生以下结果: id名称 1饭 2猪肉 3米饭

希望它有所帮助。

答案 2 :(得分:0)

试试这个。此查询将dish_cat链接到cat_id,并且仅当dish_cat和cat_id都相等时才返回菜名。

SELECT food_dish.`dish name` FROM food_dish, foodcat 
WHERE cat_id = 1 AND (food_dish.dish_cat = foodcat.cat_id);

在此处传递您选择的cat_id值。

以上查询输出cat_id 1的米名:

菜名

普通大米

奶油米饭