2015-12-11 3 views
0

Так что это для школьного проекта. Мы создаем веб-сайт, и я использую 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 &copy; 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> 

Любая помощь приветствуется! Спасибо! Пожалуйста, спросите, нужна ли дополнительная информация!

+0

Пожалуйста [прекратить использование '' 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). –

+0

[Ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

+0

@JayBlanchard Это просто школа проект. Никто не будет использовать его. Это все подделка. И для функций это учит учитель и то, что я должен использовать. – shay2013

ответ

1
input type="text" name="name" 
input type="text" name="description" 

Сравните с

$_POST['Name']; 
     ^
$_POST['Description']; 
     ^

И обнаружить ошибку;)

+0

, который фиксировал удаление данных, но он все еще ничего не обновляет – shay2013

Смежные вопросы