PHP购物车用法之更新购物车数量
表单部分:
代码如下 | 复制代码 |
<form action="?action=edit_num" method="post" name="car<?php $c_rs['id'];?>" id="car<?php $c_rs['id'];?>"> <input name="suliang[<?php echo $c_rs['sp_id'];?>]" type="text" id="suliang[<?php echo $c_rs['sp_id'];?>]" value="<?php echo $c_rs['suliang'];?>"/> <input type="submit" name="button" id="button" value="更新购物车" /> </form> |
PHP 处理部分:
代码如下 | 复制代码 |
<?php require 'config.inc.php'; require 'checklogin.php'; $username = $_SESSION['username']; $action = $_GET['action']; switch ($action) { case "edit_num": $arr = $arr = $_POST['suliang']; foreach($arr as $key=>$value){ $sqlgx = "update `cartemp` set suliang='$value' where username='".$username."' and flag=0 and sp_id='".$key."'"; mysql_query($sqlgx, $conn); echo "<script>location.href='shopcat.php'</script>"; } break; case "null": $null_sql = "delete from `cartemp` where username='$username' and flag=0 "; mysql_query($null_sql, $conn); echo "<script>location.href='shopcat.php'</script>"; break; case "del": $id = $_GET['id']; $del_sql = "delete from `cartemp` where id=$id"; mysql_query($del_sql, $conn); echo "<script>location.href='shopcat.php'</script>"; break; } ?> |
上面全部使用了数据库来操作,下面来个完全的类
代码如下 | 复制代码 |
|
代码如下 | 复制代码 |
<?php require_once 'config.php'; $action = empty($_GET['action']) ? '' : $_GET['action']; $id = isset($_GET['id']) ? $_GET['id'] : 0; if (empty($action)) {//列表 $result = "SELECT * FROM posts ORDER BY pid DESC"; $items = 3; $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $page = ($page =='' && $page < 0) ? 1 : $page; $total = mysql_num_rows(mysql_query($result));//数据条目总数 $pageall = ceil($total/$items); $offset = ($page-1)*$items;//数据开始位置 $result .= " limit {$offset},{$items}";//每页显示 $results = mysql_query($result); $prev = $page - 1; $next = $page + 1; $goPrev = "<a href="?page=$prev">上一页</a>"; $goNext = "<a href="?page=$next">下一页</a>"; if ($page == $pageall){ $goNext = NULL;} $pagestate = ''; if ($page == 1 && $pageall > 1) { $pagestate .= $goNext; } elseif ($pageall > $page || $page >1) { $pagestate .= $goNext . '|' .$goPrev; } elseif ($page >1 ) { $pagestate .= $goPrev; } else { $pagestate .= 'Just One Page'; } $pagelinks = ''; for ($i = 1; $i <= $pageall; $i++) { $pagelinks .= ($i != $page) ? "<a href="?page=$i">$i</a>" : $i; $pagelinks .= ($i < $pageall) ? '-' : null; } // end 分页 $data = array(); //列出文章 while ($row = mysql_fetch_array($results)) {//mysql_fetch_array ; 从查询结果取出一行作为数组; $data[] = $row;// } //列出分类 $recat = mysql_query("SELECT * FROM category ORDER BY cid DESC"); $cdata = array(); while ($catlist = mysql_fetch_array($recat)) { $cdata[$catlist['cid']] = $catlist; } include template('index'); } elseif ($action == 'post') {//发表 $title = $_POST['title']; $date = date("Y-m-d H:i:s"); $content = $_POST['content']; $cid = $_POST['cat']; if ($title == '' || $content == '' || $cid == '') { echo "缺少必填项nnnn<a href="javascript:history.go(-1);">返回</a>"; } else { $insertPost = "INSERT INTO posts (title,time,post,cid) VALUES ('$title','$date','$content','$cid')"; if (!mysql_query($insertPost,$sql)) { die('ERROR: '. mysql_error()); } header('location: index.php'); } } elseif ($action == 'view') {//查看 $view = mysql_query("SELECT * FROM posts WHERE pid='$id'"); while ($row = mysql_fetch_array($view)) { $title = $row['title']; $time = $row['time']; $post = $row['post']; } if ($_SERVER['REQUEST_METHOD'] == 'POST') {//评论 $name = isset($_POST['name']) ? $_POST['name'] : 0; $review = isset($_POST['review']) ? $_POST['review'] : 0; if ($name == '' && $review == '') { echo "缺少必填项"; exit; } $insertRview = "INSERT INTO review (pid,name,review) VALUES ('$id','$name','$review')"; if (!mysql_query($insertRview,$sql)) { die('ERROR: ' . mysql_error()); } header("location: ?action=view&id=$id"); } $rert = mysql_query("SELECT * FROM review WHERE pid='$id' ORDER BY rid ASC"); $data = array(); while ($relist = mysql_fetch_array($rert)){ $data[] = $relist; } include template('view'); } elseif ($action == 'del') {//删除 mysql_query("DELETE FROM posts WHERE pid='$id'"); header("location: index.php"); } elseif ($action == 'edit') {//编辑 if ($_SERVER['REQUEST_METHOD'] == 'POST') { $title = $_POST['title']; $content = $_POST['content']; $date = date("Y-m-d H:i:s"); if ($title == '' or $content == '') { echo "缺少必填项nnnn<a href="javascript:history.go(-1);">返回</a>"; exit;} mysql_query("UPDATE posts SET title='$title',time='$date',post='$content' WHERE pid='$id'"); header("location: index.php"); } else { $row = mysql_query("SELECT * FROM posts WHERE pid='$id'"); $row = mysql_fetch_array($row); include template('edit'); } } elseif ($action == 'newcat') {//新建分类 $cat = isset($_POST['category']) ? $_POST['category'] : 0; if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($cat == '') { echo "缺少必填项nnnn<a href="javascript:history.go(-1);">返回</a>"; exit;} $insertCat = "INSERT INTO category (category) VALUES ('$cat')"; if (!mysql_query($insertCat,$sql)){ die('ERROR: ' . mysql_error()); } header("location: index.php"); } include template('jioncat'); } elseif ($action == 'vcat') { $cid = $_GET['cid']; $revcats = "SELECT * FROM posts WHERE cid='$cid' ORDER BY cid DESC"; $items = 1; $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $page = ($page =='' && $page < 0) ? 1 : $page; $total = mysql_num_rows(mysql_query($revcats));//数据条目总数 $pageall = ceil($total/$items); $offset = ($page-1)*$items;//数据开始位置 $revcats .= " limit {$offset},{$items}";//每页显示 $revcat = mysql_query($revcats); $prev = $page - 1; $next = $page + 1; $goPrev = "<a href="?action=vcat&cid=$cid&page=$prev">上一页</a>"; $goNext = "<a href="?action=vcat&cid=$cid&page=$next">下一页</a>"; if ($page == $pageall){ $goNext = NULL;} $pagestate = ''; if ($page == 1 && $pageall > 1) { $pagestate .= $goNext; } elseif ($pageall > $page || $page >1) { $pagestate .= $goNext . '|' .$goPrev; } elseif ($page >1 ) { $pagestate .= $goPrev; } else { $pagestate .= 'Just One Page'; } $pagelinks = ''; for ($i = 1; $i <= $pageall; $i++) { $pagelinks .= ($i != $page) ? "<a href="?action=vcat&cid=$cid&page=$i">$i</a>" : $i; $pagelinks .= ($i < $pageall) ? '-' : null; } $data = array(); while ($vclist = mysql_fetch_array($revcat)) { $data[] = $vclist; } include template('cplist'); } mysql_close($sql); |
题外话了,一个access转换成mysql数据库的实例
点击下载:http://file.111cn.net/download/2013/05/14/db2mysql.zip
本文章来给大家介绍关于如何在Drupal读取Excel并导入到mysql数据库的方法,这里我们介绍使用excel插件PHPExcel,PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等Drupal 通过Library 调用 PHPExcl
将PHPExcel 下载后,上传到Drupal目录:sites/all/libraries/PHPExcel
如果你的项目中安装了libraries模块,可以通过libraries_load($name);来调用。
如果没有安装libraries模块,可以简单的使用下列代码来调用:
代码如下 | 复制代码 |
require("sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php"); |
注意为了确保Excel全部导入,程序可以会话很长的时间来进行。
所以在代码开头部分加入:
代码如下 | 复制代码 |
set_time_limit(0); |
来确保运行时间不受限制。
Drupal 读取Excel并导入到数据库
Drupal 实现上传Excel文件后,读取Excel 内容,写入到数据库,打印导入结果消息。
归纳起来有这样几点:
Drupal 读取Excel 多行多列内容,列数从1到n,行数也是1到n。
Drupal 根据数据库结构 n 个字段分别用于存放Excel 1到n列,如果Excel 的列数很多,可以把n列值存放在1个字段中。
这里我解决的是Excel n列值存放到MySQL n个字段中(n不是很大)
这就是在Drupal最后提交上传文件后的函数:
代码如下 | 复制代码 |
<?php function excel_upload_form_submit($form, &$form_state) { set_time_limit(0); $timestamp = time(); // 确保Excel文件上传了 if ($file = file_save_upload(‘file’)) { $row = 0; //解析行数 $paseRows = 0; //跳过行数 没有值的行 $insertRows = 0; //插入行数 $table = array( ‘dbfield1′, ‘dbfield2′, ‘dbfield3, ‘dbfield4′, ‘dbfield5′, … ‘dbfieldn’, ); require("sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php"); if(($handle = fopen ( $file->filepath, "r" )) !== FALSE) { $PHPExcel = new PHPExcel (); $PHPReader = new PHPExcel_Reader_Excel2007 (); if (! $PHPReader->canRead ( $file->filepath )) { $PHPReader = new PHPExcel_Reader_Excel5 (); if (! $PHPReader->canRead ( $file->filepath )) { echo ‘no Excel’; return; } } $PHPExcel = $PHPReader->load ( $file->filepath ); $currentSheet = $PHPExcel->getSheet ( 0 ); /**取得一共有多少列*/ $allColumn = $currentSheet->getHighestColumn(); //取得共有多少列,若不使用此静态方法,获得的$col是文件列的最大的英文大写字母 $col = PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn()); /**取得一共有多少行*/ $allRow = $currentSheet->getHighestRow(); //循环读取每个单元格的内容。注意行从1开始,列从A开始 for($rowIndex = 2; $rowIndex <= $allRow; $rowIndex++) { $token_db = $row_db = $field = array(); $i = 0; $query = ”; for($colIndex = 0; $colIndex <= $col; $colIndex++) { //$addr = $colIndex.$rowIndex; //$cell = $currentSheet->getCell($addr)->getValue(); $cell = $currentSheet->getCellByColumnAndRow($colIndex, $rowIndex)->getValue(); $cell = trim($cell); if($cell instanceof PHPExcel_RichText) { //富文本转换字符串 $cell = $cell->__toString(); } if ($colIndex == ‘A’ && !intval($cell)) { $paseRows++; break; } $field[] = $table[$i]; $token_db[] = "’%s’"; $row_db[] = $cell; $query .= $table[$i]." = ‘%s’, "; $i++; } $row++; if ($row_db) { db_query(‘INSERT INTO {db_import} (‘. implode(‘, ‘, $field) .’, created) VALUES(‘. implode(‘, ‘, $token_db) .’, %d)’, array_merge($row_db, array($timestamp))); $insertRows++; } } fclose ( $handle ); } drupal_set_message(t(‘文件 @file 导入成功.’, array(‘@file’ => $file->filename))); drupal_set_message("解析".$row."条数据完毕,新增共".$insertRows."条数据,没有试题类型ID的".$paseRows."条数据。"); } else { drupal_set_message(t(‘File to import not found.’), ‘error’); $form_state['redirect'] = ‘admin/content/db/import’; return; } } ?> |
上面代码部分注意一下几点:
代码如下 | 复制代码 |
|
获取的列为英文大写字母的数组索引。
代码如下 | 复制代码 |
$col = PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn()); |
将英文大写字母索引格式化为数字,索引值从0开始计算。
本代码支持读取Excel 2007 及之前的格式。
phpMyAdmin配置文件在libraries下的config.default.php中,主要配置如下:
一般的话,如果你的mysql和phpmyadmin放在同一服务器上,主机名就直接用localhost
代码如下 | 复制代码 |
$cfg['Servers'][$i]['host'] = 'localhost'; |
然后就是要配置mysql的用户名和密码了:
代码如下 | 复制代码 |
$cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = *****'; |
暂时没需要就这些基本配置了,然后将phpMyAdmin上传到服务器根目录,用
http://网站域名/phpMyAdmin/ 访问
其它一些方法
D.认证方法
代码如下 | 复制代码 |
$cfg['Servers'][$i]['auth_type'] = 'cookie'; |
在此有四种模式可供选择,cookie,http,HTTP,config
config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。
当该项设置为cookie,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,,具体如下:
PHP安装模式为Apache,可以使用http和cookie;
PHP安装模式为CGI,可以使用cookie
我个人建议:无论是本地还是网络上,都建议设置成cookie,安全第一。
E.短语密码(blowfish_secret)的设置
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = ''; |
如果认证方法设置为cookie,就需要设置短语密码,置于设置为什么密码,由您自己决定 ,但是不能留空,否则会在登录phpmyadmin时提示错误
F.设置默认语言与编码
查找
代码如下 | 复制代码 |
$cfg['DefaultLang'] = 'zh'; |
在phpmyadmin中,总共有四种登录方式
config:直接输入phpmyadmin远程登录地址即可,只要在配置文件中设置用户名密码即可。
http:弹出对话框,输入用户名和密码后进入
signon:类似于页面跳转的登录方式,同时需要设定$cfg['Servers'][$i]['SignonURL'],当你输入phpmyadmin的远程登录地址后会自动跳转到signonURL设定的网址。
cookie:也就是phpmyadmin配置时候的登录方式。
至此整个phpmyadmin3的安装和配置工作就算完成了,你可以体验phpmyadmin新版本的新功能了。
本文章来给大家介绍一款PHPExcel读取excel并导入数据库代码实现,有需要了解的朋友可参考,这里我们介绍的是读取表格之后再创建mysql连接,然后保存到mysql数据库。PHPExcel是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。不过其使用方法相对来说也就有些繁琐
代码如下 | 复制代码 |
<?php |
相关文章
- 这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
- 这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
- 最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
- 这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 这篇文章主要介绍了C#中的try catch finally用法,以实例形式分析了try catch finally针对错误处理时的不同用法,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了React列表栏及购物车组件使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
Mybatis Plus 字段为空值时执行更新方法未更新解决方案
这篇文章主要介绍了Mybatis Plus 字段为空值时执行更新方法未更新解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-03vivo OriginOS新系统如何更新 originos系统更新方法
vivo新系统更新的步骤是什么?如何更新到vivo的最新系统?vivo的最新系统太亮眼了,不少vivo的用户都在跃跃欲试想体验一下最新的系统。vivo新系统虽然做出来了不过我们想体验的话还是要等待一段时间。到时大家通过下面的方法就可以使用到新系统了...2020-12-08- useState 通过在函数组件里调用它来给组件添加一些内部 state,React 会在重复渲染时保留这个 state,接下来通过一个示例来看看怎么使用 useState吧...2021-06-04
PHP中print_r、var_export、var_dump用法介绍
文章详细的介绍了关于PHP中print_r、var_export、var_dump区别比较以及这几个在php不同的应用中的用法,有需要的朋友可以参考一下 可以看出print_r跟var_export都...2016-11-25- 在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input。 下面的例子摘取的是wordpres...2016-11-25
- 这篇文章主要介绍了Delphi常用关键字用法,包括了各个常用的关键字及其详细用法,需要的朋友可以参考下...2020-06-30
- 这篇文章主要为大家详细介绍了vue实现简单购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-01
- 1、声明主键的方法: 您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以更新表结构时为表加上主键,如: ALTER TABLE tbl_name ADD PRIMARY KEY (in...2015-11-24
- 本文给大家汇总介绍了C#中的几种this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码。...2020-06-25
- 这篇文章主要介绍了Android studio4.1更新后出现的问题详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-14
- 在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高。下面介绍基于jquery fly插件实现加入购物车抛物线动画效果...2016-04-06
- 今天小编就为大家分享一篇pytorch 自定义参数不更新方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-29
- 目前在做window.onerror时上报js错误信息的事,整理下相关资料,需要的朋友可以参考下...2016-01-29