1

PHPスクリプトに問題があります。検索バーがありますが、スクリプトを実行する代わりにクラスにリダイレクトすると、PHPスクリプトが表示されます。私はOOPPHPプログラミングスタイルに不慣れです。

私は自分のデータベースで本当に単純なOOP検索クエリを実現しようとしています。しかし、スクリプトを実行するのではなく、なぜclasses/class.House.incにリダイレクトされるのかについて混乱しています。どこが間違っているのですか?

私はオンラインでOOPチュートリアルをオンラインで探してみましたが、運が悪かったです:(どんな助けでも歓迎されます!

index.php

    <form method="post" action="classes/class.House.inc" name="search" id="searchform">
    <input type="text" name="term" id="searchinput"/>
    <input type="submit" name="submit" id="searchsubmit" value=""/>
    </form>

classes / class.House.inc

   <?php 

   class House extends Database {

    public function search (){

            $query = "SELECT * FROM houses WHERE postcode like '%$term%'";

                    $result = $this->mysqli->query($query);

                    $num_result = $result->num_rows;    
                    if($num_result > 0){
                        while($rows =$result->fetch_assoc()){               
                            $this->data[]=$rows;
                            //print_r($rows);
                        header ("Location: ../search.php");
                        }           
                        return $this->data;
                }}}
    ?>

search.php

    <table width="500" border="1" cellpadding="5">
    <tr>
      <th width="16" scope="row">id</th>
      <td width="95">bedrooms</td>
      <td width="140">description</td>
      <td width="104">roadname</td>
       <td width="71">postcode</td>
    </tr>
  <?php
        $obj = new House();
        $obj->search();
        foreach($obj->data as $val){
      extract($val);
      ?>
<tr>
<td scope="row"><?php echo $id; ?></td>
<td><?php echo $bedrooms; ?></td>
<td><?php echo $description; ?></td>
<td><?php echo $roadname; ?></td>
<td><?php echo $postcode; ?></td>
    </tr>
      <?php
  }
  ?>
  </table>
4

1 に答える 1

0

index.phpでフォームを修正します

 <form method="post" action="search.php" name="search" id="searchform">

そしてsearch.phpでこの行を追加します

<?php
        require("classes/class.House.inc");
        $obj = new House();
        $obj->search();
        foreach($obj->data as $val){
        extract($val);
?>

そして、なぜスクリプトがそれを表示するのか、apache構成のために、incファイルをスクリプトの言い訳として置く必要があるからです。

于 2012-11-04T10:45:14.340 に答える