0

我正在创建一个从数据库中提取菜单的脚本。我目前将菜单分为 6 个单独的类别。我不想为每个类别创建一个查询并获取每个结果,而是创建一个识别类别然后发布正确结果的函数。目前,我的函数返回错误“致命错误:在第 5 行的 /home/a2077073/public_html/functions.php 中的非对象上调用成员函数 query()”。我对函数没有太多经验,搜索没有结果。代码贴在下面。

<?php 
function getmenuitems($menu) {

$query = "SELECT * FROM `menu` WHERE `item_cat`= '" .$menu. "' ";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);


    if($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $item_name = stripslashes($row['item_name']);
        $item_des = stripslashes($row['item_des']);
        $item_price = stripslashes($row['item_price']);     
     ?>
<div class="menu_contain">
  <div class="order-menu-first">
    <div class="mp"><strong><?php echo $item_name; ?></strong> <?php echo $item_des; ?>        </div>
  </div>
  <div class="order-menu-second">
    <div class="mp">
      <select>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
      </select>
    </div>
  </div>
  <div class="order-menu-third">
    <div class="mp">
      <input type="text" value="notes">
    </div>
  </div>
  <div class="order-menu-third">
    <div class="mp"> <?php echo $item_price; ?> </div>
  </div>
  <div class="order-menu-fifth">
    <div class="mp"> <a href="#">X</a> </div>
  </div><div class="clear"></div> 

我正在调用该函数,

  <?php 
echo getmenuitems('firsts');
   ?>
4

1 回答 1

0

$mysqli未在函数范围内定义。特别是调用时会触发错误$mysqli->query($query);$mysqli甚至没有在全局文件范围内定义。此时,您有三个主要选择:

  1. 在全局范围内创建一个 mysqli 连接并将其作为第二个(或第一个)参数传递:function getmenuitems($mysqli, $menu) {
  2. 不建议$mysqli在函数本身内部创建。
  3. 真的不建议:在全局范围内创建一个mysqli连接,并global $mysqli;在函数内部使用它来访问它。
于 2013-01-23T02:09:55.030 回答