ALEX8998 Ответов: 2

Сообщение не может быть вставлено в таблицу базы данных


Я новичок в PHP, и я несколько раз пытался вставить свои коды в таблицу.Я думаю, что в моих php-кодах есть ошибка.Но я не смог решить ее сам

Что я уже пробовал:

<pre><?php
include "config.php";
include "db.php";

$db = new database();


$query = "SELECT * FROM categories";
$cats = $db ->select($query);

if(isset($_POST['submit'])){
	$title = $_POST['title'];
	$content = $_POST['content'];
	$cat = $_POST['cat'];
	$image = $_FILES['image'] ['name'];
	$image_tmp = $_FILES['image'] ['tmp_name'];
	move_uploaded_file($img_tmp,"../images/$image");


	$query = "INSERT INTO posts (category_id,title,content,image) VALUES ('$cat',$title,'$content','$image')";
     $run = $db->insert($query);
}

     ?>




<!DOCTYPE html>
<html>
<head>
	<title>Insert Post</title>
</head>
<body>

<form action="insert.php" method="post" enctype="multipart/form-data">
<center><table width="800" align="center" border="2"></center>
<tr bgcolor="orange">
<td colspan="6"><h1 style="text-align:center">Insert new Post:</h1></td>
</tr>

<tr>
	<td align="right" bgcolor="orange">Post title</td>
	<td><input type="text" name="title" size="60"></td>
</tr>
<tr>
	<td align="right" bgcolor="orange">Post Category</td>
	<td>

		<select name="cat">
		 <option >Select a Category</option>
		 <?php while($row1 = $cats->fetch_array()) :?>
		 	<option value="<?php echo $row['id'];?>"><?php echo $row1 ['title'];?></option>
		<?php endwhile ;?>
		</select>
	</td>

</tr>



<tr>
	<td align="right" bgcolor="orange">Post image</td>
	<td><input type="file" name="image" size="50"></td>
</tr>
<tr>
	<td align="right" bgcolor="orange">Post Content</td>
	<td><textarea name="content" rows="15" cols="40"></textarea></td>
</tr>
<tr>
	
	<td colspan="6" align="center" bgcolor="orange"><input type="Submit" name="Submit" value="Publish now"/></td>
</tr>

</body>
</html>

2 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Ваше испытание

if(isset($_POST['submit']))
всегда будет проходить в том, что входной элемент управления типа "submit" не должен иметь (или тестироваться) значения - его задача состоит в том, чтобы отправить содержимое формы в цель действия="inset.php". Поскольку вы жестко закодировали значение, оно всегда будет иметь одно значение.

Кроме того, не зная, что находится в "db.php-или ...config.php", я не знаю, подключаетесь ли вы к базе данных с помощью $db= new database(); у вас даже есть параметры подключения? Можете ли вы извлечь данные из таблицы, чтобы по крайней мере знать, что у вас есть соединение?

Если вы просто вырезали/вставили их из какого-то онлайн-источника, то практически нет никаких шансов, что они будут работать для вас, так как ваша установка будет иметь разные местоположения, учетные данные и все остальное. (без понимания, вырезать/вставить = отходы)


Рейтинг:
1

dnibbo

Вы уже много лет не занимались PHP, но должны ли вы иметь одинарные кавычки вокруг $title ?


ALEX8998

готово! но пока никаких изменений