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グローバルファイルスコープでも定義されていません。この時点で、3つの主なオプションがあります。

  1. グローバルスコープでmysqli接続を作成し、それを2番目(または最初)のパラメーターとして渡します。function getmenuitems($mysqli, $menu) {
  2. 推奨されません$mysqli:関数自体の内部に作成します。
  3. 本当に推奨されません:グローバルスコープでmysqli接続を作成しglobal $mysqli;、関数内でそれにアクセスするために使用します。
于 2013-01-23T02:09:55.030 に答える