1

データベースに 2 つのテーブルがあります。1 つは という名前jokesで、もう 1 つは という名前categoryです。

jokes

CREATE TABLE `jokes` (
  `joke_id` int(11) NOT NULL AUTO_INCREMENT,
  `joke` varchar(1024) NOT NULL,
  `category_id` int(11) NOT NULL,
  PRIMARY KEY (`joke_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

category

CREATE TABLE `category` (
  `category_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(51) NOT NULL,
  PRIMARY KEY (`category_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

テーブルにジョークを表示する私のPHP

<?php
include 'database.php';
$pdo = Database::connect();
$sql = 'SELECT * FROM jokes ORDER BY joke_id DESC';
foreach ($pdo->query($sql) as $row) {
    echo '';
    echo '<table class="table">';
    echo '<thead>';
    echo '<tr>';
    echo '<h3><th>Category Name</th></h3>';
    echo '<h3><th>Action</th></h3>';
    echo '<tbody>';
    echo '<tr>';
    echo '<thead>';
    echo '<tbody>';
    echo '<tr>';
    echo '<td >' . $row['joke'] . '</td>';
    echo '<td width=250>';
    echo '<a class="btn-big white" href="read.php?id=' . $row['joke_id'] . '">Read</a>';
    echo '&nbsp;';
    echo '<a class="btn-big green" href="update.php?id=' . $row['joke_id'] . '">Update</a>';
    echo '&nbsp;';
    echo '<a class="btn-big red" href="delete.php?id=' . $row['joke_id'] . '">Delete</a>';
    echo '</td>';
    echo '</tr>';

}
Database::disconnect();
?>

私の質問は、ジョークを PHPcategory_nameでエコーに表示するにはどうすればよいですか? '<h3><th>Category name</th></h3>';現時点では、テーブルにはジョークのみが表示され、ジョークのカテゴリ名は表示されません。例: 有名人のジョーク: これは有名人のジョークです。

4

2 に答える 2

1

カテゴリ名を含めるようにクエリを変更する必要があります。

SELECT j.joke AS joke, j.joke_id AS joke_id, c.name AS category 
FROM jokes j, category c 
WHERE j.category_id = c.category_id

その後、呼び出してカテゴリを取得できます$row['category']

于 2013-11-06T14:46:08.270 に答える