-1

userid = bookidの場合、どのように検索して結果を表示しますか?bookidは外部キーであり、useridは2つの異なるテーブルの主キーです。これはMVCとPDOを使用して実装されます。ビューからコントローラー、モデル、クエリにパラメーターを渡すにはどうすればよいですか?SELECT * FROM user,Book WHERE user_id=Book_id

意見:

if(!isset($_GET['id']))
{
    exit;
}
$user_id=$_GET['id'];
?>

<div id="BookItem">
    <div id = "thumbview_Book_title">
        Books
    </div>
<?php 
    $BookArray = $this->_dispResult['book'];
    $num = count($BookArray);

    for($i=0;$i<$num;$i++)
    {
        $row = $BookArray[$i];
    }
    <img src="<?php echo $row['booksrcpath'];?>">
    <?php echo $row['bookName'];?>

コントローラ:

$bookId= isset($_GET["id"])?$_GET["id"]:'';

    if($bookId)
    {
        $result['bookbyuserid']=$this->_userModel->getBookByUserId();
        $BookRow = $this->_bookModel->getbookById($bookId);
        if(!$bookRow)
        {
            gotoUrl('/error/?error=lost');
            exit;
        }
    }

    $result['book_row'] = $bookRow;
    $result['book_array'] = $this->_bookModel->getAllBooks($bookId, $bookRow['username']);

    $this->_showPage('books', 'books.php',$result);          
}

モデル

2つのテーブルからのモデルは、bookidがuseridと等しいすべての本を選択するusertableとbooktableからクエリを実行します。基本的にはと同じSELECT *FROM USER, BOOK WHERE BOOK_ID = USER_IDです。

public function getBookByUserId()
{
    $BookByUserIdArray = array();
    $this->setTable('book,user');

    $select = 'user.username,user.id as user_id,    //$select = string to search db
      book.id as book_id,book.book_name';

    $where ="user.id=book.user_id";   //string to search where in db
    $result= $this->query($select, $where); //query db
    while($Result && $row =$this->nextRow() )   
    {
        $user_name = $row['username'];
        $book_id = $row['book_id'];
        if($this->_BookImgSr->getBookUrl($user_name, $book_id))    // folder where image files are found and searched from
        {
            $row['user_photo'] = $this->_BookImgSr->getUserPhoto($user_name);
            $row['Book_path'] = $this->_BookImgSr->getBookPath($user_name, $Book_id);
            array_push( $BookByUserIdArray, $row);
        }
    } 

    return  $BookByUserIdArray;
}
4

1 に答える 1

2

ビューからコントローラー、モデル、クエリにパラメーターを渡すにはどうすればよいですか

それは間違った道です。ビューから
何も渡す必要はありません。 コントローラーは、モデルを呼び出してデータを取得し、それをビューに渡す必要があります。


まず、モデルを呼び出してデータを取得します

$bookId= isset($_GET["id"])?$_GET["id"]:'';
$BookRow = $this->_bookModel->getbookById($bookId);

最後に、ビューを呼び出します:

$this->_showPage('books', 'books.php',$result); 
于 2013-03-10T11:20:44.170 に答える