菜鸟提问:关于PHP与MySQL的小问题
如图所示
本人想实现的功能就是
点多个菜品
之后选择单个包厢
之后点击提交订单
所选的选项的单价自动加和
然后把结果赋值给选择包厢的费用,也就是jiesuan
PHP代码如下
<?php/***2015-08-06*点餐系统*/FLEA::loadClass('TMIS_Controller');class Controller_Renwu_diancai extends TMIS_Controller{ ////定义全局变量 $_modelExample //var $_modelExample; function Controller_Renwu_diancai() { $this->_modelExample1=& FLEA::getSingleton('Model_Renwu_caidanguanli'); $this->_modelExample2=& FLEA::getSingleton('Model_Renwu_baoxiangguanli'); } function actiondiancai() { $this->authCheck('9-3'); $this->_edit($row); } function _edit($arr) { $title='菜品点选'; /* 执行数据库操作 */ /* 数据库查询语句 */ $sql="select * from renwu_caidanguanli where shoumaizhuangtai='出售'"; $class_info1=$this->_modelExample1->findBySql($sql); $temp= $this->_modelExample1->execute($sql); /* 显示数据 */ $smarty = & $this->_getView(); /* 后加的一句 作用不详 */ $smarty->assign('class_info1',$class_info1); /* 显示该网页模板 */ //$smarty->display("Renwu/caidanguanli.tpl"); $title='包厢点选'; /* 执行数据库操作 */ /* 数据库查询语句 */ $sql="select * from renwu_baoxiangguanli where baoxiangzhuangtai='空闲中'"; $class_info2=$this->_modelExample2->findBySql($sql); $temp= $this->_modelExample2->execute($sql); /* 显示数据 */ $smarty = & $this->_getView(); /* 后加的一句 作用不详 */ $smarty->assign('class_info2',$class_info2); /* 显示该网页模板 */ $smarty->display("Renwu/diancai.tpl"); } function actionChange(){ //根据选择菜品 $b=0; $sql="select caipindanjia from renwu_caidanguanli where id='{$_POST['isOver1']}'"; // dump($sql); //$this->_modelExample->execute($sql); $temp= $this->_modelExample1->findBySql($sql); // dump($temp);exit; $a=$temp[0]['caipindanjia']; $b=$b+$a; dump($b);exit; //临时菜品价格表 //$sql="update renwu_baoxiangguanli set jiesuan='$a' where id='{$_POST['isOver1']}'"; //$temp= $this->_modelExample1->execute($sql); $sql="update renwu_baoxiangguanli set baoxiangzhuangtai='使用中' where id='{$_POST['isOver2']}'"; //$this->_modelExample->execute($sql); $temp= $this->_modelExample2->execute($sql); //$sql="delete from renwu_caidanguanli where id='{$_POST['isDel']}'"; //$this->_modelExample->execute($sql); //$temp= $this->_modelExample->execute($sql); if($temp){ js_alert(null,"window.parent.showMsg('保存成功!')",$this->_url('diancai')); }//else die('保存失败!'); }}?>
tpl代码如下
<html> <head> <tr></tr> <form action="{url controller=$smarty.get.controller action='Change'}" method="post"> </head> <body> <table cellspacing=0 bordercolordark=#FFFFFF width="90%" bordercolorlight=#000000 border=1 align="center" cellpadding="2"> <tr bgcolor="#6b8ba8" style="color:FFFFFF"> <td width="10%" align="center" valign="bottom" id="id" name="id" height="19">ID</td> <td width="20%" align="center" valign="bottom">菜品名称</td> <td width="10%" align="center" valign="bottom">菜品编号</td> <td width="10%" align="center" valign="bottom">菜品分类</td> <td width="10%" align="center" valign="bottom">菜品单价</td> <td width="10%" align="center" valign="bottom">售卖状态</td> <td width="20%" align="center" valign="bottom">选择菜品</td> </tr> {foreach from=$class_info1 item='caidanguanli'} <tr> <td align="center" height="19">{$caidanguanli.id}</td> <td align="center">{$caidanguanli.caipinmingcheng}</td> <td align="center">{$caidanguanli.caipinbianhao}</td> <td align="center">{$caidanguanli.caipinzhonglei}</td> <td align="center">{$caidanguanli.caipindanjia}</td> <td align="center">{$caidanguanli.shoumaizhuangtai}</td> <td> <input name="isOver1" type="checkbox" id="isOver1" value="{$caidanguanli.id}">点此菜品 </td> </tr> {/foreach} </table> <p>菜品一次订购,概不退换</p> <table cellspacing=0 bordercolordark=#FFFFFF width="90%" bordercolorlight=#000000 border=1 align="center" cellpadding="2"> <tr bgcolor="#6b8ba8" style="color:FFFFFF"> <td width="10%" align="center" valign="bottom" height="19">ID</td> <td width="20%" align="center" valign="bottom">包厢类型</td> <td width="10%" align="center" valign="bottom">包厢大小</td> <td width="10%" align="center" valign="bottom">包厢状态</td> <td width="20%" align="center" valign="bottom">包厢选择</td> </tr> {foreach from=$class_info2 item='baoxiangguanli'} <tr> <td align="center" height="19">{$baoxiangguanli.id}</td> <td align="center">{$baoxiangguanli.baoxiangleixing}</td> <td align="center">{$baoxiangguanli.baoxiangdaxiao}</td> <td align="center">{$baoxiangguanli.baoxiangzhuangtai}</td> <td> <input name="isOver2" type="checkbox" id="isOver2" value="{$baoxiangguanli.id}">订此包厢 </td> </tr> {/foreach} </table> <input type="submit" id="submit" name="submit" align="center" value='提交订单'> <br /> </form> </body></html>
菜品数据库结构如下图
包厢数据库结构如下图
回复讨论(解决方案)
点此菜品
菜品应能多选
查询时
$sql="select caipindanjia from renwu_caidanguanli where id in (" . join(',', $_POST['isOver1']) . ")";
包厢 似应为单选钮。
复选钮也行,但是最下面的有效。容易产生纠纷
点此菜品
菜品应能多选
查询时
$sql="select caipindanjia from renwu_caidanguanli where id in (" . join(',', $_POST['isOver1']) . ")";
包厢 似应为单选钮。
复选钮也行,但是最下面的有效。容易产生纠纷
包厢已经改成单选
你说的很对
我之前没有考虑到
我尝试了您的代码
结果是随机的一个选项的单价
不是和
点此菜品
菜品应能多选
查询时
$sql="select caipindanjia from renwu_caidanguanli where id in (" . join(',', $_POST['isOver1']) . ")";
包厢 似应为单选钮。
复选钮也行,但是最下面的有效。容易产生纠纷
非常感谢
问题解决了
我用dump看了一下
发现是我自己的问题
做了一个for循环
然后就实现了
非常感谢版主大大

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Alipay PHP...

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

The enumeration function in PHP8.1 enhances the clarity and type safety of the code by defining named constants. 1) Enumerations can be integers, strings or objects, improving code readability and type safety. 2) Enumeration is based on class and supports object-oriented features such as traversal and reflection. 3) Enumeration can be used for comparison and assignment to ensure type safety. 4) Enumeration supports adding methods to implement complex logic. 5) Strict type checking and error handling can avoid common errors. 6) Enumeration reduces magic value and improves maintainability, but pay attention to performance optimization.

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...
