내 사이트의 각 게시물에 대한 태그를 작성하는 방법에 대해 고민하고 있습니다. 태그를 데이터베이스에 추가하는 방법을 모르겠습니다. 1 PHP 무엇인가 포스팅 (예 :게시물 태그 (SO 태그와 같은)를 생성하는 논리에 집착 (PHP)
+---------------------+ +--------------------+ +---------------------+
| Tags | | Posting | | PostingTags |
+---------------------+ +--------------------+ +---------------------+
| + TagID | | + posting_id | | + posting_id |
+---------------------+ +--------------------+ +---------------------+
| + TagName | | + title | | + tagid |
+---------------------+ +--------------------+ +---------------------+
태그 테이블 태그 (1 PHP, 2 MySQL은, 3 HTML 예)의 단지 이름입니다 현재 ... 나는 3 개 테이블이 ?, 2 CSS 란?, 3 HTML이란 무엇입니까? postingtags는 게시와 태그 사이의 관계를 보여줍니다.
사용자가 게시글을 입력하면 "게시"테이블에 데이터가 삽입됩니다. 각 게시물에 대해 posting_id를 자동으로 삽입합니다 (posting_id는 기본 키임).
$title = mysqli_real_escape_string($dbc, trim($_POST['title']));
$query4 = "INSERT INTO posting (title) VALUES ('$title')";
mysqli_query($dbc, $query4);
그러나 각 글마다 어떻게 태그를 삽입합니까? 사용자가 양식을 작성할 때 사용 가능한 모든 태그에 대한 확인란 영역이 있으며 원하는 태그를 모두 선택합니다. (사용자가 아직 원하는 태그를 입력하는 위치를 지정하지 않음)
이렇게하면 각 태그에 확인란이 표시됩니다. 사용자가 각 태그를 체크하면 "postingtag []"배열에 저장됩니다.
<label class="styled">Select Tags:</label>
<?php
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query5 = "SELECT * FROM tags ORDER BY tagname";
$data5 = mysqli_query($dbc, $query5);
while ($row5 = mysqli_fetch_array($data5)) {
echo '<li><input type="checkbox" name="postingtag[]"
value="'.$row5['tagname'].'" ">'.$row5['tagname'].'</li>';
}
?>
제 질문은 배열 ("postingtag") 태그를 "postingtags"테이블에 어떻게 삽입합니까? 나는 ...
$postingtag = $_POST["postingtag"];
foreach($postingtag as $value){
$query5 = "INSERT INTO postingtags (posting_id, tagID)
VALUES (____, $value)";
mysqli_query($dbc, $query5);
}
1.In이 쿼리는 어떻게 게시물의 posting_id 값을 얻을해야합니까?
저는 여기 논리에 매달렸습니다. 누군가 다음 단계를 설명하도록 도울 수 있다면, 고맙겠습니다.
태그를 삽입하는 쉬운 방법이 있습니까?
감사합니다. Billy. 네가 한 말하려고 노력할거야. 어떤 문제가 생기면 나는 볼 수있을거야 :) – ggfan
거기에? $ posting_id = $ dbc-> insert_id를 얻었을 때 코드의 마지막 스 니펫에 대해 쓴 것을 사용합니까? – ggfan
@ggfan : 예. bind_param을 호출하면 물음표가 자동으로 올바른 데이터로 바뀝니다. 예를 들어 http://www.php.net/manual/en/mysqli.prepare.php –