0

クラス内に、データベースから約 10 行を取得するデータについて MySQL データベースにクエリを実行する関数があります。

コード例:

<?php

 class details {

 public function detailsRetrieve() { 
    try {

        $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
        $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

        $sql = "SELECT * FROM table";
        $result = $con->query($sql);

        while($row = $result->fetch(PDO::FETCH_ASSOC)) {
        $1 = $row['row1'];
        $2 = $row['row2'];
        $3 = $row['row3'];
        $4 = $row['row4'];

        }

    $con = null;   

    }catch(PDOException $e) {

    echo $e->getMessage();

    }
 }   
     }
     ?>

これで問題なく動作し、データベースからデータを取得します。次のように、クラスを別のページに含めました。

    <?php
    include("class/details.php"); 
    $class = new details();
    $class->detailsRetrieve();
    ?>

この新しいページで実際に変数 (1,2,3,4) を出力するにはどうすればよいですか?

関数内でこれらの変数をそれぞれエコーすると、上記のコードを使用するだけで新しいページに自動的に表示されることはわかっていますが、ページの必要な場所にそれぞれを個別に出力できますか?

4

2 に答える 2

1

detailsRetrieve()値を返す必要があります。その後、ページでそれらにアクセスできます。

public function detailsRetrieve() { 
    try {

        $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
        $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

        $sql = "SELECT * FROM table";
        $result = $con->query($sql);

        $results = array();
        while($row = $result->fetch(PDO::FETCH_ASSOC)) {
            $results() = $row;
        }

    $con = null;   

    }catch(PDOException $e) {

    echo $e->getMessage();

    }
 }   

 $details = $class->detailsRetrieve();

 foreach ($details as $row) 
 {
     echo 'row 1: ' . $row['row1'] . '<br>';
     echo 'row 2: ' . $row['row2'] . '<br>';
     echo 'row 3: ' . $row['row3'] . '<br>';
     echo 'row 4: ' . $row['row4'] . '<br>';
  }
于 2013-01-14T00:18:30.160 に答える
0

クラス

class details {

    public function detailsRetrieve() { 
        try {

            $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
            $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

            $sql = "SELECT * FROM table";
            $result = $con->query($sql);

            while($row = $result->fetch(PDO::FETCH_ARRAY)) {
                $ret[] = array('1' => $row['row1'],
                '2' => $row['row2'],
                '3' => $row['row3'],
                '4' => $row['row4']);
            }

        $con = null;   

        if (!empty($ret)) return $ret;
        return array();

        }catch(PDOException $e) {

            echo $e->getMessage();

        }
    }   
}
?>

2 番目のファイル:

<?php

$det = new details();
$arr = $det->detailsRetrive();

print("<pre>");
print_r($arr);
print("</pre>");

?>
于 2013-01-14T00:19:22.070 に答える