Так что это для школьного проекта. Мы создаем веб-сайт, и я использую PHP с MySQL и phpMyAdmin.
Моя проблема в том, что когда я обновляю продукт вместо изменения поля, он удаляет все данные для строки, кроме ProductID, который является первичным ключом.
*** EDIT: Я расскажу об этом здесь: Это школьный проект, и поэтому безопасность для меня не проблема.
Мне просто нужны продукты для обновления, сейчас. Проблема стирания решена.
** End Edit **
Код: обновление-page.php - имеет фактическую форму в немPHP MySQL Обновление в форме не обновляется
<'?'php
session_start();
require_once 'db_connect.php';
$query = "SELECT * FROM Products";
$result = mysql_query($query);
if (!$result) {
die("Database query failed: " . mysql_error());
}
$num = mysql_num_rows($result);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>AppleRetail - Update Product</title>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="css/update-custom.css" rel="stylesheet">
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">AppleRetail.com</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a href="products-page.php">Products</a>
</li>
<li>
<a href="add-page.php">Add Product</a>
</li>
<li>
<a href="delete-page.php">Delete Product</a>
</li>
<li>
<a href="update-page.php">Update Price</a>
</li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
<!-- Page Content -->
<div class="container">
<!-- Jumbotron Header -->
<header class="jumbotron hero-spacer">
<h1>Update Product</h1>
<p>Change the information below and select "Update" to update the product information.</p>
</header>
<hr>
<form action="update.php" method="POST">
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Product ID</th>
<th>Name</th>
<th>Description</th>
<th>Price</th>
<th>Image URL</th>
</tr>
</thead>
<tbody>
<?php while($row = mysql_fetch_array($result)) { ?>
<tr>
<input type="hidden" name="id" value="<?php echo $row['ProductID']; ?>"/>
<td><?php echo $row['ProductID']; ?></td>
<td><input type="text" name="name" value="<?php echo $row['Name']; ?>"/></td>
<td><input type="text" name="description" value="<?php echo $row['Description']; ?>"/></td>
<td><input type="text" name="price" value="<?php echo $row['Price']; ?>"/></td>
<td><input type="text" name="image" value="<?php echo $row['Image']; ?>"/></td>
<td>
<input type="submit" name="update" value="Update">
</td>
</tr>
<?php }?>
</tbody>
</table>
</form>
<!-- Footer -->
<footer>
<div class="row">
<div class="col-lg-12">
<p>Copyright © AppleRetail.com</p>
</div>
</div>
</footer>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
И тогда update.php имеет запрос в Это.
<?php
session_start();
require_once 'db_connect.php';
// Grab the posted data and send to variable
$ProductID = $_POST['ProductID'];
$Name = $_POST['Name'];
$Description = $_POST['Description'];
$Price = $_POST['Price'];
$Image = $_POST['Image'];
$_SESSION['ProductId1'] =$ProductId;
$_SESSION['Name1'] = $Name;
$_SESSION['Description1'] = $Description;
$_SESSION['Price1'] = $Price;
$_SESSION['Image1'] = $Image;
$query = "UPDATE Products SET Name='$Name', Description='$Description', Price='$Price', Image='$Image' WHERE ProductID='$ProductID'";
$result = mysql_query($query);
if (!$result) {
die("Database query failed: " . mysql_error());
}
if($result =='true'){echo "<p>Post is add</p>";}
else{ echo "<p>Post is not add</p>"; }
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>AppleRetail Update Page</title>
</head>
<body>
<?php header("Location: updateFinal.php"); ?>
</body>
</html>
Любая помощь приветствуется! Спасибо! Пожалуйста, спросите, нужна ли дополнительная информация!
Пожалуйста [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why -shouldnt-я-использование-MySQL-функции-в-PHP). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте над использованием PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –
[Ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –
@JayBlanchard Это просто школа проект. Никто не будет использовать его. Это все подделка. И для функций это учит учитель и то, что я должен использовать. – shay2013