Php 如何通过db的id从db中获取内容的标题
我需要从db获得类别的标题,但我有这个类别的id。类别和内容具有不同的表,但内容通过字段类别与类别表连接。如何加载类别的标题而不是id 创建内容的代码如下所示:Php 如何通过db的id从db中获取内容的标题,php,mysql,Php,Mysql,我需要从db获得类别的标题,但我有这个类别的id。类别和内容具有不同的表,但内容通过字段类别与类别表连接。如何加载类别的标题而不是id 创建内容的代码如下所示: <form action="create_content.php" method="POST" id="content_form" enctype="multipart/form-data" > <div class="content_text"> <p><
<form action="create_content.php" method="POST" id="content_form" enctype="multipart/form-data" >
<div class="content_text">
<p><label for="title">Title:</label></p>
<input type="text" name="title" value="">
</div>
<div class="content_textarea">
<p><label for="text">Text</label></p>
<textarea name="text" id="text" cols="30" rows="20" form="content_form">
</textarea></div>
<p><label for="text">Add image</label></p>
<div class='add_image'><input type="file" name="content_pic"></div>
<select name="category">
<?php foreach ($result as $item) {?>
<option value="<?php print $item['id'] ?>"><?php print $item['cat_title'] ?>
</option> <?php }?>
</select>
<div class="submit_content">
<input type="submit" value="Send"></div>
</form>
create_content($_POST['title'], $_POST['text'], $_FILES['content_pic'], $_POST['category']);
function create_content($title, $text, $content_pic, $category) {
$title = trim($title);
$text = trim($text);
$category= $category;
if (!empty($content_pic)) {
if ($content_pic ["error"] == UPLOAD_ERR_OK) {
$uploads_dir = __DIR__ . '/files';
$tmp_name = $content_pic ["tmp_name"];
$name = $content_pic ["name"];
if (move_uploaded_file($tmp_name, "{$uploads_dir}/{$name}")) {
$content_pic = "files/{$name}";
}
}
}
$db = database_connect();
/*if ($id) {
$stmt = $db->prepare("UPDATE INTO content (id, title,text) VALUES (?, ?, ?)");
$stmt -> execute(array($title ,$text, $id ));
}
else {*/
$stmt = $db->prepare("INSERT INTO content (`title`,
`text`,`content_pic`, `category`, `author`, `time`)
VALUES (?, ?, ?, ?, ?, ?)");
$stmt -> execute(array($title, $text, $content_pic, $category, $_SESSION['user_id'], time()));
header("Location: review.php?id=" . $insertId=$db->lastInsertId());
exit();
}
呈现视图的代码:
$id = $_GET['id'];
$select_query = "SELECT `c`.`title`,`c`.`content_pic`,`c`.`text`,
`c`.`status`,`c`.`category`, `u`.`login`,
`u`.`id` AS `user_id`, `c`.`time`
FROM content c
LEFT JOIN users u ON c.author= u.id
WHERE c.id = ?";
$db = database_connect();
$stmt = $db->prepare($select_query);
$stmt->execute(array($id));
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result) {
$row = $result;
$title = $row['title'];
$content_pic = $row['content_pic'];
$text = $row['text'];
$category= $row['category'];
$created = !empty($row['time']) ? date('d.m.Y H:i', $row['time']) : '';
$author = 'Anonymous';
if (!empty($row['login'])) {
$author = '<a href="review_account.php?id=' . $row['user_id'] .
'">' . $row['login'] . '</a>';
}
}
?>
<?php if ($result) {?>
<div id="destinations_content">
<div id="item_view">
<div class="items">
<div class="items_title">
<?php print $title ?>
<br>
</div>
<div class="my_pic">
<img src="<?php print $content_pic ?>" alt="">
</div>
<?php print $text ?><br>
<?php print $created?>
</div>
<?php print $category ?>
</div>
</div>
<?php }?>
为什么不加入分类表来获得分类标题呢。因为您已将内容表映射到类别表。我假定您的类别表名称为category。如何获得$row['cat_title'],我在select查询中没有看到任何cat_title
$select_query = "SELECT `c`.`title`,`c`.`content_pic`,`c`.`text`,`c`.`status`,`c`.`category`, `u`.`login`, `u`.`id` AS `user_id`, `c`.`time`, cat.title as cat_title
FROM content c
LEFT JOIN users u ON c.author= u.id
INNER JOIN categories cat ON c.category= cat.id
WHERE c.id =."(int)$id;
你不能只回显你的$row['title']或者在本例中$title你得到了什么?我不能回显它,因为我只有category的id,但没有title.table称为categories。这一行$row['cat_title']在这里是错误的。当您运行查询时,您会选择什么?是否将类别表更改为类别?回响打印结果;死亡那么让我看看?你想要类别标题还是项目标题?如果我输入你的代码,即使使用打印,它也不会显示任何内容,是的,我将其更改为categoriesecho$select\u查询;在phpmyadmin中运行结果。看看会发生什么?