2014-12-03 108 views
0

这是一个简单的购物车,我发现某处,很久以前,现在需要做一个订购系统。但是由于某些或其他奇怪的原因,我不能插入所有的字段!插入MySQL不能正常工作

我下面的功能:

function get_categoryid($pid){ 
$result=mysql_query("select product_category_id from shopping_products where serial=$pid") or die("select product_category_id from shopping_products where serial=$pid"."<br/><br/>".mysql_error()); 
$row=mysql_fetch_array($result); 
return $row['product_category_id']; 
} 
function get_thecategory($pid){ 
$result=mysql_query("select product_category_title from shopping_products where serial=$pid") or die("select product_category_title from shopping_products where serial=$pid"."<br/><br/>".mysql_error()); 
$row=mysql_fetch_array($result); 
return $row['product_category_title']; 
} 
} 

这里是它被插入到“shopping_order_detail”表中的客户机填补了他/她的信息之后的PHP代码。

if (isset($_REQUEST['command']) && $_REQUEST['command']=='update'){ 
    $name=$_REQUEST['name']; 
    $email=$_REQUEST['email']; 
    $address=$_REQUEST['address']; 
    $phone=$_REQUEST['phone']; 
    $loyalty=$_REQUEST['loyalty']; 

    $result=mysql_query("insert into shopping_customers values('','$name','$email','$address','$phone','$loyalty')"); 
    $customerid=mysql_insert_id(); 
    $date=date('Y-m-d'); 
    $result=mysql_query("insert into shopping_orders values('','$date','$customerid')"); 
    $orderid=mysql_insert_id(); 

    /* ---- below my problem i think --- */ 
    $max=count($_SESSION['cart']); 
    for($i=0;$i<$max;$i++){ 
     $pid=$_SESSION['cart'][$i]['productid']; 
     $q=$_SESSION['cart'][$i]['qty']; 
     $price=get_price($pid); 
     $pcategoryid=get_categoryid($pid); 
     $pcategory=get_thecategory($pid); 
     $pvendor=get_thevendor($pid); 

     mysql_query("INSERT INTO shopping_order_detail VALUES($orderid,$pid,$q,$price,$pcategoryid,$pcategory,$pvendor)"); 

    echo "vendor -" . $pvendor . " Order ID - " . $orderid . " - Product ID - " . $pid . " - Category ID ". $pcategoryid ." - Price R ". $price .".00 - Quantity ". $q. "- Category Title: ". $pcategory ."<Br>"; 
    } 
    echo "<br>=======================================================================================<br>"; 
    echo "<br>Data echoed above this works fine.. and pulls the correct shopping items<br>"; 
    echo "<br>Sucess ......Data Inserted!<br>"; 
    die('Thank You! your order has been placed'); 
} 

这是我的问题!

将“$ pcategoryid”插入到表格中,但是在此之后我所添加的任何字段数量不仅无法插入,而且由于某些原因也会阻止任何信息被插入到这段脚本中。

回顾一下我的问题: 如果从脚本中删除“$ pcategory”和“$ pvendor”,数据将被插入。如果我在问题中添加这两个字段,那么脚本不会插入,但是/并且它不会给出任何错误消息。

我的“回声===等”在脚本的底部命令让我发现,我的脚本工作,因为它显示了问题的两个领域时,它循环通过产品清单

我已经把我的PHP错误代码是这样的:

ini_set('display_errors',1); 
ini_set('display_startup_errors',1); 
error_reporting(-1); 

这是Mysql中的某种限制,因为表中的问题没有主键?我无法解决问题!

请任何帮助将不胜感激谢谢。

+0

在旁注中,请使用mysql和NON参数化查询请求STOP。 – Jordy 2014-12-03 15:26:38

+0

你可以发布查询的回声吗? 'echo“INSERT INTO shopping_order_detail VALUES($ orderid,$ pid,$ q,$ price,$ pcategoryid,$ pcategory,$ pvendor)”' – Giwwel 2014-12-03 15:27:17

+0

请确保您的插入查询中的字段顺序是正确的,并且这些字段实际上存在于你的桌子上。在旁注中,请停止使用mysql和非参数化查询。你会在以后节省一些严重的头痛。 – sotoz 2014-12-03 15:30:00

回答

1

试试这个

$结果= mysql_query( “插入shopping_customers VALUES( '$名称', '$电子邮件', '$地址', '$电话', '$忠诚')”);

而且

$result=mysql_query("insert into shopping_orders values('$date','$customerid')"); 
+0

谢谢@Ranjeet Singh!在你和以前的用户Giwwel之间我找到了解决方案 – Cavemanharris 2014-12-03 15:52:11

1

get_thecategory($pid)结果是类别标题,一个字符串.. 所以$pcategory必须加引号的查询是这样的:

mysql_query("INSERT INTO shopping_order_detail VALUES($orderid,$pid,$q,$price,$pcategoryid,'$pcategory',$pvendor)"); 

可能是多个变量字符串。在查询中也引用这些内容

+0

谢谢@Giwwel!我是PHP新手,现在才意识到所有其他字段都不是字符串。谢谢。有用 ! – Cavemanharris 2014-12-03 15:50:48

+0

我很高兴我能帮上忙 – Giwwel 2014-12-03 15:57:14