2015-06-24 1 views
0

У меня возникли серьезные проблемы с обновлением моей информации о продукте. Он извлекает всю информацию о продукте, когда я нажимаю «Редактировать», но когда я нажимаю кнопку «Отправить», чтобы обновлять сведения о продукте, это не влияет на базу данных. Я потратил довольно много времени на это и посмотрел на интернет-решения. Ни один из них не похоже на работуОбновить запрос не обновит мой список продуктов

Вот мой код:

   <?php 

        include("functions/mysqli_connect.php"); 

        if(isset($_GET['edit'])) { 

        $get_id = $_GET['edit']; 

        $get_pro = "select * from shop where product_id='$get_id'"; 

        $run_pro = mysqli_query($con, $get_pro); 



        $row_pro=mysqli_fetch_array($run_pro); 
        $pro_id = $row_pro['product_id']; 
       $pro_name = $row_pro['name']; 
       $pro_cat = $row_pro['category']; 
       $pro_description = $row_pro['description']; 
       $pro_quantity = $row_pro['quantity']; 
       $pro_price = $row_pro['price']; 
       $image = $row_pro['images']; 

       } 

       ?> 
       <!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>SB Admin - Bootstrap Admin Template</title> 

        <!-- Bootstrap Core CSS --> 
        <link href="css/bootstrap.min.css" rel="stylesheet"> 

        <!-- Custom CSS --> 
        <link href="css/sb-admin.css" rel="stylesheet"> 


        <!-- Custom Fonts --> 
        <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> 

        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
        <!--[if lt IE 9]> 
         <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
         <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
        <![endif]--> 

       </head> 

       <body> 

        <div id="wrapper"> 

         <!-- Navigation --> 
         <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> 
          <!-- Brand and toggle get grouped for better mobile display --> 
          <div class="navbar-header"> 
           <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 
            <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">SB Admin</a> 
          </div> 
          <!-- Top Menu Items --> 
          <ul class="nav navbar-right top-nav"> 

           <li class="dropdown"> 
            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <?php echo $_SESSION['admin_username']; ?> <b class="caret"></b></a> 
            <ul class="dropdown-menu"> 
             <li> 
              <a href="functions/logout.php"><i class="fa fa-fw fa-power-off"></i> Log Out</a> 
             </li> 
            </ul> 
           </li> 
          </ul> 
          <!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens --> 
          <div class="collapse navbar-collapse navbar-ex1-collapse"> 
           <ul class="nav navbar-nav side-nav"> 
            <li class="active"> 
             <a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Insert Products</a> 
            </li> 
            <li> 
             <a href="view_products.php"><i class="fa fa-fw fa-table"></i> View Products</a> 
            </li> 
            <li> 
             <a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Edit Products</a> 
            </li> 
            <li> 
             <a href="tables.html"><i class="fa fa-fw fa-table"></i> Delete Products</a> 
            </li> 

           </ul> 
          </div> 
          <!-- /.navbar-collapse --> 
         </nav> 

         <div id="page-wrapper"> 

          <div class="container-fluid"> 

           <!-- Page Heading --> 
           <div class="row"> 
            <div class="col-lg-6"> 
             <form action="edit_pro.php" method="post" enctype="multipart/form-data"> 

              <div class="form-group"> 
               <label for="name">Product Name</label> 
               <input type="text" class="form-control" id="name" name="name" value="<?php echo $pro_name;?>" > 
               </div> 

               <div class="form-group"> 
               <label for="category">Category</label> 
               <select type="text" class="form-control" id="category" name="category" > 
               <option><?php echo $pro_cat;?></option> 
               <option>Henna</option> 
               <option>Gliter</option> 
               <option>Cajeput Oil</option> 
               <option>Henna Cones</option> 
               </select> 
               </div> 

               <div class="form-group"> 
               <label for="image">Image</label> 
               <input type="file" id="image" name="image" ><img src="stock_images/<?php echo $image; ?>"width="60" height="60" /> 
               <p class="help-block"></p> 
               </div> 


               <div class="form-group"> 
               <label for="description">Description</label> 
               <textarea class="form-control" id="description" name="description"><?php echo $pro_description;?></textarea> 
               </div> 

               <div class="form-group"> 
               <label for="quantity">Quantity</label> 
               <input type="number" class="form-control" id="quantity" name="quantity" value="<?php echo $pro_quantity;?>" > 
               </div> 

               <div class="form-group"> 
               <label for="price">Price</label> 
               <input type="number" class="form-control" id="price" name="price" value="<?php echo $pro_price;?>" > 
               </div> 

               <div class="form-group"> 
               <input name="id" type="hidden" id="id" value="<? echo $pro_id; ?>"> 

               </div> 


               <input type="submit" name="update" class="btn btn-default" value="Add Stock"></a>. 


             </form> 

            </div> 
           </div> 
           <!-- /.row --> 

          </div> 
          <!-- /.container-fluid --> 

         </div> 
         <!-- /#page-wrapper --> 

        </div> 
        <!-- /#wrapper --> 

        <!-- jQuery --> 
        <script src="js/jquery.js"></script> 

        <!-- Bootstrap Core JavaScript --> 
        <script src="js/bootstrap.min.js"></script> 



       </body> 

       </html> 



       <?php 
       if(isset($_POST['update'])){ 
         //getting the text data from the form 


       $id=mysql_real_escape_string($_GET['product_id']); 
       $update_id = $pro_id; 


       $pro_name = $_POST['name']; 
       $pro_cat = $_POST['category']; 
       $pro_description = $_POST['description']; 
       $pro_quantity = $_POST['quantity']; 
       $pro_price = $_POST['price']; 


         $image = $_FILES['image'] ['name']; 
         $image_tmp = $_FILES['image'] ['tmp_name']; 

         move_uploaded_file($image_tmp, "stock_images/$image"); 


       $servername = "localhost"; 
       $username = "Naina"; 
       $password = "Mhendi2015"; 
       $dbname = "farhanaina"; 

       try { 
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
        // set the PDO error mode to exception 
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

        $sql = "UPDATE shop SET name='$pro_name', category='$pro_cat', images='$image', description='$pro_description', quantity='$pro_quantity', price='$pro_price' WHERE product_id='$id'"; 

        // Prepare statement 
        $stmt = $conn->prepare($sql); 

        // execute the query 
        $stmt->execute(); 

        // echo a message to say the UPDATE succeeded 
        echo $stmt->rowCount() . " records UPDATED successfully"; 
        } 
       catch(PDOException $e) 
        { 
        echo $sql . "<br>" . $e->getMessage(); 
        } 

       $conn = null; 
       } 
       ?> 

ответ

0

Вы используете PDO и подготовленное заявление здесь. Вы не можете отправить готовый SQL-запрос с переменными значениями в PDO::prepare. Цитирование пример из the manual:

$sth = $dbh->prepare('SELECT name, colour, calories 
    FROM fruit 
    WHERE calories < ? AND colour = ?'); 

$sth->execute(array(150, 'red')); 

Массив вы передаете в ваш PDO::execute заменит каждый? со значением в порядке значений в массиве. В противном случае вы можете передать ассоциативный массив и сделать это с помощью именованных параметров:

$sql = 'SELECT name, colour, calories 
    FROM fruit 
    WHERE calories < :calories AND colour = :colour'; 

$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 

$sth->execute(array(':calories' => 150, ':colour' => 'red')); 
Смежные вопросы