whiskedaway Posted November 11, 2009 Share Posted November 11, 2009 I'm having heaps of trouble getting one of my PHP/MySQL queries to work for some reason (and the funny thing is there are plenty that are identical to it all the way through the site) so I'm wondering if someone can spot the problem. (I've basically torn all the code apart trying to work it out and have changed values that are being submitted, etc to try and get it to work, so I'm tearing my hair out now!) $staffID = $_POST['staffID']; $date = date("Y-m-d h:i:s"); $sql2 = "INSERT INTO Order (date, staffID) VALUES ('$date', '$staffID')"; $result2 = mysqli_query($cxn, $sql2) or die ("Couldn't execute insert into order query."); As it's not working, I keep getting "Couldn't execute insert into order query." The MySQL database is named Order, and has orderID, date and staffID. orderID is int(8 ), unsigned zerofill and autoincrement. date is datetime, and staffID is int(4) unsigned zerofill. Staff members enter the zeros in their staffID when putting their details into the form (so would enter 0004). Here's the full code: createorder.php <?php include("credentials.inc"); switch (@$_POST['do']) { case "neworder": $cxn = mysqli_connect($host, $user, $password, $dbname) or die ("Connection failed."); $staffID = $_POST['staffID']; $sku = $_POST['sku']; $quantity = $_POST['quantity']; $sql = "SELECT staffID FROM Staff WHERE staffID = '$staffID'"; $result = mysqli_query($cxn, $sql) or die ("Couldn't execute staff query."); $num = mysqli_num_rows($result); if ($num > 0) { //staff member found $date = date("Y-m-d h:i:s"); $sql2 = "INSERT INTO Order (date, staffID) VALUES ('$date', '$staffID')"; $result2 = mysqli_query($cxn, $sql2) or die ("Couldn't execute insert into order query."); $sql3 = "SELECT orderID FROM Order WHERE date = '$date'"; $result3 = mysqli_query($cxn, $sql3) or die ("Couldn't execute select from order query."); $rowname = mysqli_fetch_assoc($result3); extract ($rowname); $sql4 = "INSERT INTO ItemsOrdered (orderID, sku, quantity) VALUES ('$orderID', '$sku', '$quantity')"; $result4 = mysqli_query($cxn, $sql4) or die ("Couldn't execute insert into ItemsOrdered query."); header("Location: success4.php"); } else { $message = "Staff member does not exist.<br />"; include("createorder.inc"); } break; default: include("createorder.inc"); } ?> createorder.inc <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Adelaide Books</title> <link href="style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div id="body"> <table id="main" cellspacing="0px"> <tr><td id="logo" colspan="3"> <img src="images/logo.gif" alt="Adelaide Books"/></td> <td class="space"> </td> <td class="right"> </td></tr> <tr><td class="left"> </td> <td class="space"> </td> <td id="text"> <h1>Create New Order</h1> <form action="createorder.php" method="POST"> <table width="250" border="0" align="center" cellpadding="2" cellspacing="2"> <?php if (isset($message)) { echo "<tr><td style='color:red' colspan='2' >$message <br /></td></tr>"; } ?> <tr> <td width="75px" align="right">Staff ID:</td> <td><input type="text" name="staffID" size="25" maxsize="50"></td> </tr> <tr> <td width="75px" align="right">SKU:</td> <td><input type="text" name="sku" size="25" maxsize="50"></td> </tr> <tr> <td width="75px" align="right">Quantity:</td> <td><input type="text" name="quantity" size="10" maxsize="20"></td> </tr> <input type="hidden" name="do" value="neworder"> <tr> <td colspan="2" align="center"><input type="submit" name="neworder" value="Submit"></td> </tr> </table> </form> <br/> <br/> <br/> <br/><a href="orders.php"><img src="images/back.gif" alt="Back" border="0" /></a></td> <td class="space"> </td> <td class="right"> </td></tr> </table> </div> </body> </html> Hope someone can help! Quote Link to comment https://forums.phpfreaks.com/topic/181061-solved-problem-with-coding-mysql-query/ Share on other sites More sharing options...
PFMaBiSmAd Posted November 11, 2009 Share Posted November 11, 2009 order is a reserved mysql keyword. You should rename your table to something else. Quote Link to comment https://forums.phpfreaks.com/topic/181061-solved-problem-with-coding-mysql-query/#findComment-955353 Share on other sites More sharing options...
whiskedaway Posted November 11, 2009 Author Share Posted November 11, 2009 Thank you, changing the table name from Order to Orders fixed it. Can't believe I'd forgotten about that! Quote Link to comment https://forums.phpfreaks.com/topic/181061-solved-problem-with-coding-mysql-query/#findComment-955369 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.