2015-09-17 3 views
-3

Я делаю форму заказа, где я хочу, чтобы идентификатор пользователя и идентификатор продукта были вставлены в базу данных. Ну, все идет правильно, но я не вставлял данные в db. Я проверил свой код много раз, и я не уверен, что я делаю неправильно здесь. Я надеялся, что кто-то может указать на мою ошибку здесь. Спасибо заранее
Вот мой код:

product.phpСведения о заказе не вставляются в базу данных

<?php session_start();    //start new or resuming existing session 
if(!$_SESSION['uid']){    //if session variable(which is the user_id) not same then it will proceed to condition 
    header("Location: product.php"); //redirect to login page to secure the welcome page without login access. 
} 

$connection = mysqli_connect("localhost","root","" , "SCINFO"); 
if (!$connection) { 
    die('Could not connect to MySQL: ' . mysqli_error()); 
} 

$result = mysqli_query($connection, "SELECT * FROM PRODUCT"); 
if(mysqli_num_rows($result) > 0){ 
    while($row = mysqli_fetch_array($result)){ 
    //display the product list and its details 
    $pid = $row["PRD_ID"]; 
    $pnm = $row["PRD_NAME"]; 
    $prc = $row["PRD_PRICE"]; 
    $pdc = $row["PRD_DEC"]; 
    $pmg = $row["PRD_IMG"]; 
    } 
} 
?> 
<!DOCTYPE html> 
<html> 
<body> 
    <h1><font color="#B20047">Product or Items</font></h1> 
    <table align="center"> 
    <tr> 
    <?php 
    $result = mysqli_query($connection, "SELECT * FROM PRODUCT"); 
    if(mysqli_num_rows($result) > 0){ 
     while($row = mysqli_fetch_array($result)){ 
      echo '<td>'; 
      echo '<img id="x" src="'.$row["PRD_IMG"].'"><br>'; 
      echo '<br><b>Item Name</b>: '.$row["PRD_NAME"]; 
      echo '<br>Price: RM '.$row["PRD_PRICE"]; 
      echo '<br>Description: '.$row["PRD_DEC"]; 
      echo '<br><font color="red">Limited!</font> <a href="order.php?id='.$row['PRD_ID'].'">Buy Now</a>'; 
     echo '</td>'; 
     } 
    } 
    ?> 
    </tr> 
    </table> 
</body> 
</html> 

order.php

<?php session_start();     //start new or resuming existing session 
if(!$_SESSION['uid']){     //if session variable(which is the user_id) not same then it will proceed to condition 
    header("Location: product.php"); //redirect to login page to secure the welcome page without login access. 
} 

//setting connection to the database 
$connection = mysqli_connect("localhost", "root", "", "SCINFO"); 
//checking the connection 
if(mysqli_connect_errno()){ 
    echo "Connection Failed!"; 
} 
//id is defined 
$id = $_GET['id']; 
?> 
<!DOCTYPE html> 
<html> 
<body> 
<h2 align="left">Purchase/Order Items</h2> 
<i>*Note: All payment method is done by cash only</i><br><br> 
<form method="post" action="ordprc.php"> 
<table align="center"> 
<tr bgcolor="#996699"> 
    <td>Product ID</td> 
    <td>Product Name</td> 
    <td>Price (RM)</td> 
    <td>Product Description</td> 
</tr> 
    <?php 
    //prints the data in table 
    $result = mysqli_query($connection, "SELECT * FROM PRODUCT WHERE PRD_ID='$id'"); 

    // loop through results of database query, displaying them in the table 
    while($row = mysqli_fetch_array($result)) { 
    // echo out the contents of each row 
    echo "<tr>"; 
    echo '<td>'.$row['PRD_ID'].'</td>';  //prints out the product ID in text field 
     echo '<td>'.$row['PRD_NAME'].'</td>'; //prints out the product name 
     echo '<td>'.$row['PRD_PRICE'].'</td>';  //prints out the product price 
     echo '<td>'.$row['PRD_DEC'].'</td>';  //prints out the product price 
     echo "</tr>"; 
    } 
?> 
<tr> 
    <td colspan="5" align="left"><hr><br><h2>Please fill up : </h2></td> 
</tr> 
<tr> 
    <td>User_ID : </td> 
    <td><input type="text" name="uiid"></td> 
    <td>Product_ID : </td> 
    <td><input type="text" name="pid"></td> 
</tr> 
<tr> 
    <td colspan="4" align="right"><input type="submit" name="submit" value="Submit"></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 

ordprc.php

$server = "localhost"; 
$uname = "root"; 
$pwd = ""; 
$dbname = "SCINFO"; 

//connecting to mysqli 
$connection = mysqli_connect($server, $uname, $pwd, $dbname); 
// Check connection 
if (mysqli_connect_errno()){ 
    echo "Connection failed!";//If connection fails, prints msg 
} 

if($_SERVER["REQUEST_METHOD"] == "POST"){ 
    if($_POST["submit"]){ 
     $uiid = mysqli_real_escape_string($connection, $_POST['uiid']); 
     $pid = mysqli_real_escape_string($connection, $_POST['pid']); 
     // sql to delete a record 
     $sql = "INSERT INTO ORDER (USER_ID, PRD_ID) VALUES ('".$uiid."', '".$pid."')"; 

     if(mysqli_query($connection, $sql)){ 
      //print message if pusrchase succesfull 
      echo "success!"; 
     } 
     else{ 
      //print error message if pusrchase unsuccesfull 
      echo "Unsuccesful Purchasing!".mysqli_error($connection); 
     } 
    } 
} 
?> 
+0

Вы получаете какие-либо ошибки? Дважды проверьте журнал ошибок, чтобы убедиться, что ошибка php/mysql не записывается. В системах debian/ubuntu журнал ошибок по умолчанию имеет значение '/ var/log/apache2/error.log'. В системах redhat/centos по умолчанию используется '/ var/log/httpd/error.log' –

+0

Кроме того, я вижу, что это неправильно, так это то, что вы вызываете вызов' header() после эхо-вывода некоторого вывода, который не допускается. –

+0

@JonathanKuhn Я не получаю никаких ошибок, но когда я нажимаю кнопку отправки после регистрации формы, я получаю сообщение неудачной покупки, а также введенная информация не вставляется в базу данных –

ответ

0

Я уверен, что это из-за имени таблицы «порядок», который является ограниченным словом в sql.

Try:

$sql = "INSERT INTO ´ORDER´ (USER_ID, PRD_ID) VALUES ('".$uiid."', '".$pid."')"; 
+0

Это какой-то «форвардный тик»? Потому что вы должны использовать backticks (') вокруг таблицы/столбцов. Но хороший улов. –

+0

Нет, ты прав, я использовал неправильные. Но он все равно должен работать. – Paflow

+0

Нет, нет. Я просто попробовал, и это работает только так, как я писал выше. – Paflow

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