【问题标题】:MYSQL statement not doing anythingMYSQL 语句不做任何事情
【发布时间】:2015-03-16 15:48:52
【问题描述】:

我使用它来将几条数据插入一个名为“purchases”的表中的查询我有一个会话变量,它保存当前登录的人的用户名,称为“login_user”,其他数据都在实例化上一页:

这是我目前拥有的代码:

<?php
session_start();
include_once("config.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>View shopping cart</title>
<link href="style/style.css" rel="stylesheet" type="text/css"></head>
<body>


<br>
<div id="books-wrapper">

<!-- #content to center the menu -->
<div id="content">
<!-- This is the actual menu --> 
<ul id="darkmenu">
      <li><a href="home.php">Home</a></li>
      <li><a href="catalogue.php">Catalogue</a></li>
      <li><a href="search.php">Search</a></li>
      <li><a href= "view_cart.php">Cart</a></li>
      <li><a href="#">Orders</a></li>
</ul>

<div id = "welcome" >
Welcome, <?=$_SESSION['login_user']?>! <br> <a href="logout.php">Logout</a>
</div>

    </div>

<br><br>
 <h1 id = "mainHeader" >View Cart</h1>
 <br>
 <div class="view-cart">
    <?php
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
if(isset($_SESSION["books"]))
{
        $total = 0;
        echo '<form method="post" action="">';
        echo '<ul>';
        $cart_items = 0;
        foreach ($_SESSION["books"] as $cart_itm){
            $ISBN = $cart_itm["ISBN"];
            $results = $mysqli->query("SELECT Title,BookDesc,Price FROM books WHERE ISBN='$ISBN'");
            $obj = $results->fetch_object();

            echo '<li class="cart-itm">';
            echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["ISBN"].'&return_url='.$current_url.'">×</a></span>';
            echo '<div class="p-Price">'.$currency.$obj->Price.'</div>';
            echo '<div class="book-info">';
            echo '<h3>'.$obj->Title.' (ISBN :'.$ISBN.')</h3> ';
            echo '<div class="p-quantity">Quantity : '.$cart_itm["quantity"].'</div>';
            echo '<div>'.$obj->BookDesc.'</div>';
            echo '</div>';
            echo '</li>';
            $subtotal = ($cart_itm["Price"]*$cart_itm["quantity"]);
            $total = ($total + $subtotal);

            echo '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->Title.'" />';
            echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$ISBN.'" />';
            echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->BookDesc.'" />';
            echo '<input type="hidden" name="item_quantity['.$cart_items.']" value="'.$cart_itm["quantity"].'" />';
            $cart_items ++;
                            }
        echo '</ul>';
        echo '<span class="check-out-txt">';
        echo '<strong>Total : '.$currency.$total.'</strong>  ';
        echo '</span>';
        echo '<button name="submit_btn" class="save_order">Save Order</button>';
        echo '</form>';

         if(isset($_POST['submit_btn']) ){
        $sql = "INSERT INTO `purchases` (`OrderNo`,`BookName`,`Quantity`,`TotalPrice`,`ISBN`,`StudentID`) VALUES (NULL, '" . $obj->Title . "', '" . $cart_itm['quantity'] . "', '" . $total . "', '" . $ISBN . "', '" . $_SESSION['login_user'] . "');";
    }


}


?>
</div>
</div>
</body>
</html>

我遇到的问题是,当用户单击“保存订单”按钮时,什么也没有发生。没有数据插入到数据库中。

我已经回显了变量以检查它们是否包含我想要的数据并且这似乎有效,但是插入语句似乎没有做任何事情

有什么想法吗?

【问题讨论】:

  • 你没有用 sql 做任何事情
  • 似乎您只是将查询加载到“$sql”变量中。执行此查询的位置。使用 echo mysqli_errno($quryVar);得到实际错误

标签: php mysql


【解决方案1】:

你需要执行查询:

$sql = "INSERT INTO `purchases` (`OrderNo`,`BookName`,`Quantity`,`TotalPrice`,`ISBN`,`StudentID`) VALUES (NULL, '" . $obj->Title . "', '" . $cart_itm['quantity'] . "', '" . $total . "', '" . $ISBN . "', '" . $_SESSION['login_user'] . "');";    
$stmt = $mysqli->prepare($sql)
$stmt->execute();

【讨论】:

  • 在 if 块内: if(isset($_POST['submit_btn']) ){ $sql = "INSERT INTO purchases (OrderNo,BookName,Quantity,@ 987654326@,ISBN,StudentID) VALUES (NULL, '" . $obj->Title . "', '" . $cart_itm['quantity'] . "', '" . $total . "', '" . $ISBN . "', '" . $_SESSION['login_user'] . "');"; }
  • 看起来你缺少一个 ;那里: $stmt = $mysqli->prepare($sql); $stmt->执行();
【解决方案2】:

表单末尾只有按钮,脚本不知道您希望它成为提交按钮。

改变

echo '<button name="submit_btn" class="save_order">Save Order</button>';

echo '<input type="submit" name="submit_btn" value="Save Order" />';

另外你提交的时候只定义$sql字符串,需要$mysqli_query就可以了。

【讨论】:

  • 嗨,这并没有改变什么
【解决方案3】:
    echo '<form method="post" action="">';

action 无效,必须有一个类似“/index.php”的 url

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-06
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多