[英]Combine multiple sql queries in php
因此,我为一个朋友提供了一项慈善活动的售票系统。 用户可以在此页面上选择所需的门票数量,然后单击“注册”。 没有付款,他们只需要注册票即可。 票证有两种:普通票和贵宾票。
我创建了三个数据库:customers,ticket和customer_tickets。 以下是这些表的转储。
顾客:
CREATE TABLE `customers` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`surname` varchar(2056) NOT NULL,
`lastname` varchar(2056) NOT NULL,
`email` varchar(2056) NOT NULL,
`street` varchar(2056) NOT NULL,
`house` int(255) NOT NULL,
`postal` varchar(2056) NOT NULL,
`city` varchar(2056) NOT NULL,
`desired_vip_tickets` int(1) NOT NULL DEFAULT '0',
`desired_normal_tickets` int(1) NOT NULL DEFAULT '0',
`order_id` varchar(2056) NOT NULL,
`status` varchar(2056) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;
客户门票:
CREATE TABLE `customer_tickets` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`order_id` int(255) NOT NULL,
`ticket_id` int(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
门票:
CREATE TABLE `tickets` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`ticket_id` varchar(2056) NOT NULL,
`ticket_type` int(255) NOT NULL,
`bought` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
用户单击注册时,将执行以下代码。 但是,仅执行第一个查询,而没有其他查询。 另外,我担心所有这些查询是否会使服务器受苦...
$sql = "UPDATE customers SET `status`='$status' WHERE `order_id`='$order_id'";
$qry = mysql_query($sql) or die (mysql_error());
$sql = "SELECT `desired_vip_tickets`, `desired_normal_tickets` FROM customers WHERE `order_id`='$order_id'";
$qry = mysql_query($sql) or die (mysql_error());
$array = mysql_fetch_array($qry);
$vip = $array[0];
$normal = $array[1];
$sql = "SELECT `ticket_id` FROM tickets WHERE `ticket_type`='1' AND `bought`='0' LIMIT ".$vip;
$qry = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_assoc($qry)) {
$ticket_id = $row['ticket_id'];
$ins = "INSERT INTO customer_tickets (`order_id`, `ticket_id`) VALUES ('$order_id', '$ticket_id)";
$query = mysql_query($ins) or die (mysql_error());
$upd = "UPDATE tickets SET `bought`='1' WHERE `ticket_id`='$ticket_id";
$query = mysql_query($upd) or die (mysql_error());
}
$sql = "SELECT ticket_id FROM tickets WHERE `ticket_type`='0' AND `bought`='0' LIMIT ".$normal;
$qry = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_assoc($qry)) {
$ticket_id = $row['ticket_id'];
$ins = "INSERT INTO customer_tickets (`order_id`, `ticket_id`) VALUES ('$order_id', '$ticket_id)";
$query = mysql_query($ins) or die (mysql_error());
$upd = "UPDATE tickets SET `bought`='1' WHERE `ticket_id`='$ticket_id";
$query = mysql_query($upd) or die (mysql_error());
}
您将需要SQL连接不同的表。 您的sql必须看起来像这样:
SELECT * FROM table1.customer_name, table2.amount_spent, recentpurchases
WHERE table2.amount_spent = recentpurchases.spendamount
我已经为这个分析器使用了示例表。 它们是表1,表2和最近购买的商品。 抱歉,如果这不是有用的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.