我是PHP和MySQL的新手。我只想将用户注册到我的网站(我成功),一旦他们登录,他们就可以捐赠衣服。我有两张桌子 -
用户 -
衣服 -
我想要的是,当用户登录并点击捐赠按钮时,用户将转到此页面 -
<form action="clothes.php" method="post" enctype="multipart/form-data">
<table align="center" width="760px" border="2">
<td>Clothes Details</td>
<td><textarea cols="60" rows="10" name="description" ></textarea></td>
</tr>
<tr>
<td>Image</td>
<td><input type="file" name="image" /></td>
</tr>
<tr>
<td><input type="submit" name="register" value="Submit" ></td>
</tr>
</table>
</form>
</body>
</html>
当用户输入说明并上传图片时,我希望将其存储在我的PhpMyAdmin表中,但需要与用户的id
相对应。这是我的PHP脚本 -
<?php
session_start();
include ("includes/db.php");
if (isset($_POST['register'])) {
$description = $_POST['description'];
$image = $_FILES['image']['name'];
$temp = $_FILES['image']['tmp_name'];
move_uploaded_file($temp, "clothes/$image");
$insert = "insert into clothes (description, image) values ( '$description', '$image')";
$run = mysqli_query($con, $insert);
if ($run) {
echo "<script>alert('Clothes Successfully Donated')</script>";
}
}
?>
显而易见,数据未插入表中。当我echo
insert
查询时,我收到查询insert into clothes (user_id, description, image) values ( 'Jeans', 'HUMBLE. - Single.jpg')
,这意味着我的查询正在运行。但我无法弄清楚问题是什么,因为这是我第一次使用外键。我做错了什么?
答案 0 :(得分:0)
首先,您需要更正代码。
<?php
session_start();
include ("includes/db.php");
if (isset($_POST['register'])) {
$user_id = $_SESSION['user_id'];
$description = $_POST['description'];
$image = $_FILES['image']['name'];
$temp = $_FILES['image']['tmp_name'];
move_uploaded_file($temp, "clothes/$image");
$insert = "insert into clothes (user_id, description, image) values ( $user_id, '$description', '$image')";
$run = mysqli_query($con, $insert);
if ($run) {
echo "<script>alert('Clothes Successfully Donated')</script>";
}
}
?>
首先,您需要验证是否已在会话中设置登录用户的ID,如果没有,则先设置,然后此代码将正常工作。如果您尚未设置,请设置$ _SESSION ['user_id'] = [登录用户的ID]。
希望这会对你有所帮助。