Как отобразить информацию из двух таблиц sql в моем блоге, используя php и html - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь отобразить информацию из моих таблиц SQL в своем веб-блоге.У меня есть две таблицы blog_posts и blog_members, которые выглядят как

Blog_members
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| memberID | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| username | varchar(255)     | YES  |     | NULL    |                |
| password | varchar(255)     | YES  |     | NULL    |                |
| email    | varchar(255)     | YES  |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+

и

 blog_posts
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| postID    | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| postTitle | varchar(255)     | YES  |     | NULL    |                |
| postDesc  | text             | YES  |     | NULL    |                |
| postCont  | text             | YES  |     | NULL    |                |
| postDate  | datetime         | YES  |     | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+

Я могу добавить информацию из одной таблицы, но я хочу отобразить memeberID при публикации статьимне нужны дополнительные столбцы в таблице blog_posts, если да, то как мне поступить, нужно ли использовать объединение?

Я отображаю информацию в своем блоге, используя приведенный ниже PHP.

$stmt = $db->query('SELECT postID, postTitle, postDesc, postDate FROM blog_posts ORDER BY postID DESC');
            // $stmt = $db->query('SELECT memberID FROM blog_members');
            while($row = $stmt->fetch()){

                echo '<div>';
                    echo '<h1><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h1>';
                    echo '<p>Posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</p>';
                    // echo '<p> by'.$row['memberID'].'</p>';
                    echo '<p>'.$row['postDesc'].'</p>';             
                    echo '<p1><a href="viewpost.php?id='.$row['postID'].'">Read More</a></p1>';             
                echo '</div>';
                echo '<hr />';

, который отображает сообщения, но не идентификатор участника. Я хотел бы, чтобы в сообщении был участник, создавший его.

1 Ответ

0 голосов
/ 12 апреля 2019

Подумайте о строке в вашей таблице сообщений. Как вы узнаете, какому члену принадлежит эта строка? Как упоминалось в комментариях, вы можете добавить memberId к вашей таблице сообщений, чтобы вы могли объединить две таблицы и найти как участника, который принадлежит сообщению, так и сообщения для определенного участника. Одним из соглашений для этих столбцов является добавление к ним префикса типа fk (внешний ключ) для указания их роли в таблице. Таблица может выглядеть так:

+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| postID      | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| postTitle   | varchar(255)     | YES  |     | NULL    |                |
| postDesc    | text             | YES  |     | NULL    |                |
| postCont    | text             | YES  |     | NULL    |                |
| postDate    | datetime         | YES  |     | NULL    |                |
| fkMemberID  | int(11) unsigned | NO   |     | NULL    |                |  
+-------------+------------------+------+-----+---------+----------------+

Затем, после того, как вы получите сообщение, у вас будет идентификатор участника, который является владельцем этого сообщения, и вы можете получить сведения об участнике, используя этот идентификатор.

(Вы также можете создать отдельный объект внешнего ключа в базе данных, который поддерживает целостность столбцов внешнего ключа. То есть он гарантирует, что вы не поместите memberId, скажем, 53, в столбец fkMemberId таблицы сообщений, если только нет memberId из 53 в таблице участников. Вы, вероятно, уже знаете это, но только что подумали упомянуть. :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...