У меня возникла проблема с добавлением PHP в базу данных. Каждый раз, когда я обновляю страницу, он снова вводит одни и те же значения. Как я могу заставить это прекратить это делать? Я понятия не имею, почему это так.Содержимое таблицы продолжает добавлять при обновлении страницы PHP
Я хочу, чтобы он добавлял значения в базу данных один раз и сохранял их там. Когда таблица создается и значения добавляются, они используются на странице. Пользователь будет иметь возможность добавлять дополнительные значения.
Он также добавляет все, что пользователь ввел при освежении.
Проблемная часть
$db_query = 'INSERT INTO `cars`' .
' (`id`, `make`, `model`, `year`, `color`, `engine`)' .
' VALUES' .
' (NULL, \'Citroen\', \'Saxo\', \'1997\', \'White\', 1.1),' .
' (NULL, \'Citroen\', \'C3\', \'2012\', \'Blue\', 1.4),' .
' (NULL, \'Volkswagen\', \'Golf\', \'2010\', \'Blue\', 1.8),' .
' (NULL, \'Ford\', \'Mondeo\', \'2009\', \'Black\', 1.6),' .
' (NULL, \'Renault\', \'Clio\', \'2010\', \'Silver\', 1.2);';
$result = mysqli_query($conn, $db_query);
Полный код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Task 7</title>
</head>
<body>
<?php
// connection to the database start
$host = 'localhost';
$user = 'root'; // your username
$password = 'vertrigo'; // your password
$databaseName = 'db2'; // your database
$conn = mysqli_connect($host, $user, $password, $databaseName);
if (mysqli_connect_errno($conn)) {
echo 'Failed to connect to MySQL: ' . mysqli_connect_error();
} else {
echo 'have connection<br>';
}
// connection to the database end (output messages created)
// creating table with rows start
$db_query = 'CREATE TABLE IF NOT EXISTS `cars` (' .
'`id` int(11) NOT NULL AUTO_INCREMENT,' .
'`make` varchar(50) NOT NULL,' .
'`model` varchar(50) NOT NULL,' .
'`year` varchar(4) NOT NULL,' .
'`color` varchar(50) NOT NULL,' .
'`engine` decimal(2,1) NOT NULL,' .
'PRIMARY KEY (`id`));';
$result = mysqli_query($conn, $db_query);
// creating table with rows end
// putting info in each column start
$db_query = 'INSERT INTO `cars`' .
' (`id`, `make`, `model`, `year`, `color`, `engine`)' .
' VALUES' .
' (NULL, \'Citroen\', \'Saxo\', \'1997\', \'White\', 1.1),' .
' (NULL, \'Citroen\', \'C3\', \'2012\', \'Blue\', 1.4),' .
' (NULL, \'Volkswagen\', \'Golf\', \'2010\', \'Blue\', 1.8),' .
' (NULL, \'Ford\', \'Mondeo\', \'2009\', \'Black\', 1.6),' .
' (NULL, \'Renault\', \'Clio\', \'2010\', \'Silver\', 1.2);';
$result = mysqli_query($conn, $db_query);
// putting info in each end
// add cars START
@$cars = $_POST['cars'];
if (isset($cars)) {
$db_query = "INSERT INTO cars (make, model, year, color, engine) VALUES ('".$cars['0']."','".$cars['1']."','".$cars['2']."','".$cars['3']."','".$cars['4']."')";
mysqli_query($conn, $db_query);
} else {
echo 'Cars array does not exists and obtained from FORM.';
}
// add cars END
// select cars table if right output the headers start
$db_query = "SELECT * FROM cars WHERE id <> 0 ORDER BY year ASC";
if ($result = mysqli_query($conn, $db_query)) {
echo " <table border='1'>";
echo " <tr><td>Make</td><td>Year</td><td>model</td><td>color</td><td>engine</td></tr>";
// select cars table if right output the headers end
// while start, output the content of the colum.
while ($row = mysqli_fetch_assoc($result)) {
?>
<tr>
<td><?php echo $row['make']; ?></td>
<td><?php echo $row['year']; ?></td>
<td><?php echo $row['model']; ?></td>
<td><?php echo $row['color']; ?></td>
<td><?php echo $row['engine']; ?></td>
</tr>
<?php
}
// endwhile
echo "</table>";
}
?>
<form action="index.php" method="post" name="zatupok">
<fieldset>
<legend>MY CARS</legend>
<label>Make</label>
<input type="text" name="cars[]">
<label>Model</label>
<input type="text" name="cars[]">
<label>Year</label>
<input type="text" name="cars[]">
<label>Color</label>
<input type="text" name="cars[]">
<label>Engine</label>
<input type="text" name="cars[]">
<input type="submit">
</fieldset>
</form>
</body>
</html>
Я думаю, что ваш ответ здесь http://stackoverflow.com/questions/5166178/php-form-refresh-send-form-again-prevent – electroid
Похоже на это. Я изо всех сил пытаюсь найти, где именно его разместить. Я все новичок в PHP, занимаюсь своими исследованиями. Можете ли вы дать мне руку, покажите мне, где ее разместить. Я загружаю весь свой код. – user2919681
Ну. История, позади, действительно длинная и жуткая. Я работаю над самостоятельными исследованиями и в тот момент, когда запрос на создание PHP, который создает таблицу в SQL, а затем можно делать простые инструкции, такие как EDIT UPDATE DELETE и т. Д. Он также должен выполняться в классах не в одном файле. Это только я пытаюсь создать соединение в PHP в первый раз. Эта ссылка даст вам больше информации о том, что происходит. Надеюсь, это поможет. И да, я не знаю, как перенести это на классы после того, как он работает. http://stackoverflow.com/questions/19588347/sql-database-access-layer-with-php – user2919681