当前位置:首页 » 编程语言 » php拍卖系统

php拍卖系统

发布时间: 2022-09-11 02:14:46

❶ 梦幻挣钱

WZ接剧情不错.本文章写给没有注意过拍卖会的人,以改变少数人垄断市场的局面,也希望WY会改善一下,如改为和真的拍卖会一样,那样会更激烈。也许我的想法很幼稚,希望能给一些玩家带来好处。

拍卖会,一个人气极少的系统(只有少数有钱人关注),曾有人说拍卖会能吞玩家钱(我没遇见过)。它一度远离我的生活,被我认为是一个鸡肋系统,但最近因为几件装备一直卖不出去而接触到拍卖会,让我发现了利用拍卖会赚钱的方法。用拍卖会赚钱的方法很简单,而且例如在100%以上,可以说是一本万利 。下面转入正题!

利用拍卖会赚钱的前提:一块准确的手表(最最重要的)、充足的点卡、自由的时间(下面会解释到)、良好的网速、足够的资金、足够的BB仓库后一个变异BB店。

先了解一下拍卖系统的基本设置:
每周六早10点至周日晚上22点(共计36个小时)会在游戏中定期举行拍卖会,玩家可以在此期间参加拍 卖会进行竞拍或拍卖物品和召唤兽。拍卖会开放时,系统将投放部分变异召唤兽和物品,以供挑选,而此时间内每次挖出怪物幼儿园时,也是有可能为拍卖会增加拍卖物品或召唤兽。参与条件:玩家等级≥50级

拍卖NPC
拍卖使者,位于长安城(205,13),只存在拍卖会开放时
拍卖保管员,位于长安城(214,13),一直存在,拍卖所有的物品流动都存于拍卖保管员
先来解释一下,拍卖会中的部分物品和大部分变异BB有系统投放,在拍卖会举行的期间,每当有人挖超级宝图挖塌幼儿园时系统将投放一个变异BB,其中不乏JP(但当资金不是很多是不要去竟价买他)。
用拍卖会赚钱分三个阶段,我注重于变异BB竞买,因为此物品很稀少,就算是垃圾的也可卖给开店的和跑BB环的(自己有点例外)。

1 观察时期。
竟价每一个系统投放的变异BB,这样做的好处有两个.①将每人要的BB归为己有,如白班一般每人去动它,那就便宜我们了。②找出抢手的变异BB,基本不去动它了。

2 观望时期。
观察和观望绝对不同,观望是要尽量保证变异BB的价格压在最低,一般6W-7W最为理想,为最后的阶段做准备。另外一点,看看有没有和你抢商品的人,如果有那你要提高警惕了,最后下手要快,而且要把握好时机。
3 竞拍阶段
时间为周日21:50到22:00,具体时间根据自己的技术、鼠标的好坏和是否有人做你的对手决定。没时间就竞拍不了了。这时你可要注意了,成败就在这几分钟内,看好手表。在最后时期,将自己说想要的商品一一竞价,争取做到让你的对手没有继续竞价的时间(22:00拍卖会就会结束),这你要掌握好,否则丢了自己的商品会把肠子悔青的。插一句,如果时间够,又有非常便宜的兽诀(如下图),你也要去竞价,这样就算卖主反悔,你也可以收到10%的金额赔偿。 (后期会涨的)

我的收获,转手卖掉会赚一笔的。

写了这个帖子后,拍卖会也许会更热闹,抢BB的人日子不好过了(骂人的请自觉),还希望WY更改改善一下拍卖系统,让他更热闹更实用。

原帖地址:http://xyq.netease.com/viewthread.php?tid=634680&extra=page%3D4&page=1

(也可通过手机访问wap.nie.163.com及时了解以上内容。)
相关新闻:

《梦幻西游》是以神话题材《西游记》为背景,采用最流行的Q版风格打造出来的浪漫型网游,整个游戏都渗透着青春活力的气息。崭新的画风、风趣的对白、精密的门派平衡、引人入胜的剧情任务、优良的系统设计,全都贯穿于整个游戏之中,网易出色的研发力量,更加懂得把握玩家心理的设计理念,使得《梦幻西游》成为目前国内同时在线人数最多的超人气MMORPG网络游戏,目前注册人数超过1.8亿,最高同时在线人数突破208万,一共开设收费服务器达472组。

❷ 求助php竞拍功能实现的思路

摘要:前面我给了一个分页显示mysql记录的类,却没给出使用的例子,现在,我整理了我刚写的一个在线竞拍系统框架程序,来说明这个类的使用方法,而且也就在线竞拍的实现方法与大家一起来讨论一下。首先声明,我不是高手,也不是行家,只是一个fans,所以这个程序肯定有不少漏...
转载请注明来源:在线竞拍系统的PHP实现框架(一)
前面我给了一个分页显示mysql记录的类,却没给出使用的例子,现在,我整理了我刚写的一个在线竞拍系统框架程序,来说明这个类的使用方法,而且也就在线竞拍的实现方法与大家一起来讨论一下。
首先声明,我不是高手,也不是行家,只是一个fans,所以这个程序肯定有不少漏洞,但我之所以敢拿出来,是因为我很希望能自由地与大家分享PHP带给我们的快乐。(其实是想多加点分好弄个支持mysql的空间^_^)
我觉得竞拍系统与一般的供求信息发布系统相比,最大的不同有两点,一点是出价者开的新价要及时地反映在商品的价格上,另一点是有时间的限制,在竞标结束后,就要停止出价。并且给出最后中标者。
其它的我还没想到呢,有行家给点介绍吧。
所以,我想把一个供求信息发布系统做成一个竞拍系统应是不困难的事吧。
下面先把新版的TViewPage类和数据库结构给出来吧。
<?php
/*********************************************
TViewPagev 1.2
分页显示Mysql数据库记录的类
作者:sharetop
E-mail:[email protected]
时间:2000-8-31
[2000-9-6] 1.2
修正了readlist()的一个bug,将验证offset放入类中。
增加add() delete() modify()三个基本操作函数。
本类没有提供连接数据库的功能,所以需在外部打开相应的数据库。
本类也没有提供显示记录的功能,只是分页读取记录至 Result二维数组中。
需在外部自定义数据显示格式。
***********************************************/
class TViewPage {
var $Table; //表名
var $MaxLine; //每页显示行数
var $Offset; //记录偏移量
var $Total; //记录总数
var $Number; //本页读取的记录数
var $Result; //读出的结果
var $TPages; //总页数
var $CPages; //当前页数
var $Condition; //显示条件 如:where id='$id' order by id desc
var $PageQuery; //分页显示要传递的参数
//******构造函数*************
//参数:表名、最大行数、偏移量
function TViewPage($TB,$ML){
global $offset;
$this->Table=$TB;
$this->MaxLine=$ML;
if(isset($offset)) $this->Offset=$offset;
else $this->Offset=0;
$this->Condition="";
}
//********设置显示条件*********
//如:where id='$id' order by id desc
//要求是字串,符合SQL语法(本字串将加在SQL语句后)
function SetCondition($s){
$this->Condition=$s;
}
//******设置传递参数************
// key参数名 value参数值
// 如:setpagequery("id",$id);如有多个参数要传递,可多次调用本函数。
function SetPageQuery($key,$value){
$tmp[key]=$key; $tmp[value]=$value;
$this->PageQuery[]=$tmp;
}
//********读取记录***************
//主要工作函数,根据所给的条件从表中读取相应的记录
//返回值是一个二维数组,Result[记录号][字段名]
function ReadList() {
$SQL="SELECT Count(*) AS total FROM ".$this->Table." ".$this->Condition;
$result=mysql_query($SQL) or die(mysql_error());
$row=mysql_fetch_Array($result);
$this->Total=$row[total];
if($this->Total>0) { //根据条件 Condition
$SQL="SELECT * FROM ".$this->Table." ".$this->Condition.
" LIMIT ".$this->Offset." , ".$this->MaxLine;
$result=mysql_query($SQL) or die(mysql_error());
$this->Number=mysql_num_rows($result);
$i=0;
while($row=mysql_fetch_Array($result)){
$this->Result[$i]=$row;
$i ;
}
}
return $this->Result;
}
//*******加入新记录**********
//$str为加入的值,如 "'$id','$name','$class'"等
function Add($str){
$SQL="INSERT INTO ".$this->Table." VALUES(".$str.")";
mysql_query($SQL) or die(mysql_error());
}
//*********删除记录**********
//先调用SetCondition()来确定条件。
function Delete(){
$SQL="DELETE FROM ".$this->Table." ".$this->Condition;
mysql_query($SQL) or die(mysql_error());
}
//********修改记录************
//$field 字段名$value新值
//如要修改多个字段可重复调用来函数。
function Modify($field,$value){
$SQL="UPDATE FROM ".$this->Table." SET ".$field."=".$value." ".$this->Condition;
mysql_query($SQL) or die(mysql_error());
}
//**********显示页数*************
//显示当前页及总页数
function ThePage() {
$this->TPages=ceil($this->Total/$this->MaxLine);
$this->CPages=$this->Offset/$this->MaxLine 1;
echo "第".$this->CPages."页/共".$this->TPages."页";
}
//**********显示翻页按钮*************
//此函数要在ThePage()函数之后调用!!!
//显示首页、下页、上页、未页,并加上要传递的参数
function Page() {
$first=0;
$next=$this->Offset $this->MaxLine;
$prev=$this->Offset-$this->MaxLine;
$last=($this->TPages-1)*$this->MaxLine;
$k=count($this->PageQuery);
$strQuery=""; //生成一个要传递参数字串
for($i=0;$i<$k;$i ){
$strQuery.="&".$this->PageQuery[$i][key]."=".$this->PageQuery[$i][value];
}
if($this->Offset>=$this->MaxLine)
echo "<A href="http://www.php1.cn/"> if($prev>=0)
echo "<A href="http://www.php1.cn/"> if($next<$this->Total)
echo "<A href="http://www.php1.cn/"> if($this->TPages!=0 && $this->CPages<$this->TPages)
echo "<A href="http://www.php1.cn/"> }
//******end class
}
?>
//************************
ebid.sql文件(我是用phpmyadmin导出的)
# phpMyAdmin MySQL-Dump
# http://www.htmlwizard.net/phpMyAdmin/
#
# Host: localhost Database : ebid
# --------------------------------------------------------
# Table structure for table 'reply'
# id,商品id,出价人,出价人的email,出价。
CREATE TABLE reply (
id varchar(16) NOT NULL,
parentid varchar(16) NOT NULL,
buyer varchar(12) NOT NULL,
email varchar(32) NOT NULL,
price float(10,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY (id, price)
);
# --------------------------------------------------------
# Table structure for table 'shop'
#id,商品名,介绍,原始价,加价单位,结束时间,竞标数,当前价,是否有照片
CREATE TABLE shop (
id varchar(16) NOT NULL,
name varchar(50) NOT NULL,
description text,
price float(10,2) DEFAULT '0.00' NOT NULL,
unit tinyint(2) unsigned NOT NULL,
endtime varchar(16) DEFAULT '0000-00-00 00:00' NOT NULL,
reply int(4) unsigned NOT NULL,
curprice float(10,2) DEFAULT '0.00' NOT NULL,
photo tinyint(1) unsigned NOT NULL,
PRIMARY KEY (id),
KEY kreply (reply)
);
配置文件如下:
//**************
//config.inc.php
<?php
$HOST="localhost"; //主机名
$DATABASE="ebid"; //数据库名
$WARE_TABLE="shop"; //商品表
$BID_TABLE="reply"; //回应表
$USER="root"; //用户
$PASSWD="9999"; //密码
$PAGE_MAX_LINE=20; //每页显示行数
//打开数据库
$LinkID=mysql_connect($HOST,$USER,$PASSWD);
mysql_select_db($DATABASE,$LinkID) or die(mysql_error());
?>
以下是显示商品及TOP10商品的函数
//*****************
//
<?php
include "config.inc.php";
include "tview.class.php"; //类文件
//*****显示商品列表********
function PrintList(){
global $view;
$ct=time();
//设置条件的句子!要满足SQL语法哦。只显示没有结束竞标的商品
$view->SetCondition("where endtime>'$ct' order by id desc");
//调用成员函数来读记录
//结果$result[记录号][字段名]是二维数组。
$result=$view->ReadList();
if($view->Number==0) {echo "<tr><td colspan=4> </td></tr>"; return;}
for($i=0;$i<$view->Number;$i ){
if(ceil($i/2)*2==$i) $bgc="#ffffff";
else $bgc="#f3f3f3";
echo "<tr bgcolor=$bgc><td width=60% >";
echo "<a href="http://www.php1.cn/"> echo "</td><td width=15% >";
echo date("Y-m-j 24:00:00",$result[$i][endtime]);
echo "</td><td width=15% align=right>¥";
echo $result[$i][curprice];
echo "</td><td width=10% align=right>";
echo $result[$i][reply];
echo "</td></tr>";
}
}
//*********显示最热的10条记录**********
function ListTopHot(){
global $view;
//同样先设置条件
$view->SetCondition("order by reply desc");
//读记录
$result=$view->ReadList();
$k=(count($result)>10)? '10':(count($result));
for($i=0;$i<$k;$i ){
echo "<tr><td>";
echo "<a href="http://www.php1.cn/"> echo "</td></tr>";
}
}
//*********显示最新10条记录***********
function ListTopNew(){
global $view;
$view->SetCondition("order by id desc");
$result=$view->ReadList();
$k=(count($result)>10)? '10':(count($result));
for($i=0;$i<$k;$i ){
echo "<tr><td>";
echo "<a href="http://www.php1.cn/"> echo "</td></tr>";
}
}
//**********<结束函数定义,主程序体*************
//构造这个viewpage类,给出商品表及每页显示行数
$view=new TViewPage($WARE_TABLE,$PAGE_MAX_LINE);
?>
下面给出用到的一个js函数吧,很简单,就是打开一个新窗口:
<script>
function showdetail(str){
window.open(str,"newwin","top=20,left=20,width=600,height=400,
location=no,toolbar=no,status=no,resizable=no,scrollbars=yes");
}
</script>

❸ 用c# winform做在线拍卖系统

EeSs:用c# winform做在线拍卖系统
为获取帮助,你需要留下合法的Email地址*
您还可以依靠Baihi联系我们或QQ:六伍柒幺伍六幺伍 ('幺'读 yao 一声)
根据此题目
我们可以提供一份与要求相匹配的代码

ES:\
EeSs:用c# winform做在线拍卖系统
交易提醒:预付订金是陷阱

❹ 在做一个商城,到订单的时候发现拍卖这块不知道如何下手 - PHP进阶讨论

建议使用linux自己的crontab功能。否则,如果网站流量大的话,在首页上加个检查代码也不错。做个任务计划表,首页每次被访问时都检查一下任务计划表中是否有任务可以执行了通过这个方法就可以“定时”地执行任务。

❺ PHP+oracle这个架构是否常用 这种架构有什么不好地方呢

淘宝架构框架
一、个人网站
2003 年 4 月 7 日,马云,在杭州,成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目。这个项目要求绝 对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”。这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对 老马的信任,都卷起铺盖离开了阿里巴巴。
他们去了一个神秘的据点 —— 湖畔花园小区的一套未装修的房子里,房子的主人是马云。这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时间内做出一个个人对个人(C2C) 的商品交易的网站。现在出一个问题考考读者,看你适不适合做淘宝的创业团队。亲,要是让你来做,你怎么做?
在说出这个答案之前,容我先卖个关子,介绍一下这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个UED(二当家)、三个运营(小宝、阿 珂、破天)、一个经理(财神)、还有就是马云和他的秘书。当时对整个项目组来说压力最大的就是时间,怎么在最短的时间内把一个从来就没有的网站从零开始建 立起来?了解淘宝历史的人知道淘宝是在 2003 年 5 月 10 日上线的,这之间只有一个月。要是你在这个团队里,你怎么做?我们的答案就是:买一个来。
买一个网站显然比做一个网站要省事一些,但是他们的梦想可不是做一个小网站而已,要做大,就不是随便买个就行的,要有比较低的维护成本,要能够方便的扩 展和二次开发。那接下来就是第二个问题:买一个什么样的网站?答案是:轻量一点的,简单一点的,于是买了这样一个架构的网 站:LAMP(Linux+Apache+MySQL+PHP)。这个直到现在还是一个很常用的网站架构模型。这种架构的优点是:无需编译,发布快 速,PHP功能强大,能做从页面渲染到数据访问所有的事情,而且用到的技术都是开源的,免费。
当时我们是从一个美国人那里买来的一个网站系统,这个系统的名字叫做 PHPAuction(他们的官方网站http://www.phpauction.net,这个名字很直白,一眼就看出来这个系统是用什么语言做的、 是干什么用的),PHPAuction有好几个版本,我们买的是最高版的,功能比较多,而且最重要的是对方提供了源代码。最高版比较贵,花了我们 2000 美金(貌似现在降价了,只要 946 美元)。买来之后不是直接就能用的,需要很多本地化的修改,例如页面模板改的漂亮一点,页头页脚加上自己的站点简介等,其中最有技术含量的是对数据库进行 了一个修改。原来是从一个数据库进行所有的读写操作,拿过来之后多隆把它给拆分成一个主库、两个从库,读写分离。这么做的好处有几点:存储容量增加了,有 了备份,使得安全性增加了,读写分离使得读写效率提升了。这样整个系统的架构就如下图所示:
淘宝架构框架
其中 Pear DB 是一个 PHP 模块,负责数据访问层。另外也用开源的论坛系统 PHPBB(http://www.phpbbchina.com )搭建了一个小的论坛社区,虚竹负责机器采购、配置、架设等,三丰和多隆负责编码,他 们把交易系统和论坛系统的用户信息打通,给运营人员开发出后台管理(admin系统)的功能,把交易类型从只有拍卖这一种增加为拍卖、一口价、求购商品、 海报商品(意思是还没推出的商品,先挂个海报出来)这四种。(PHPAuction 只有拍卖的交易,Auction 即拍卖的意思。@_行癫在微博中提到:今天 eBay 所有交易中拍卖交易仍然占了 40%,而在中国,此种模式在淘宝几乎从一开始就未能占据优势,如今在主流的交易中几乎可以忽略不计。背后的原因一直令人费解。我大致可以给出其中一种解 释,eBay 基本在发达国家展开业务,制造业外包后,电子商务的基本群体大多只能表现为零散的个体间交易。)
在经历了另外一些有趣的事情之后(这些有趣的事情包括“淘宝”这个名字的由来,员工花名的由来等等,由于本书主要描述技术方面的故事,对这些有兴趣的可以去网上找),网站开始上线运行了。
淘宝架构框架
在接下来的大半年时间里,这个网站迅速显示出了它的生机。这里有必要提一下当时的市场环境,非典(SARS)的肆虐使得大家都不敢出门,尤其是去商场之 类人多的地方。另外在神州大地上最早出现的 C2C 网站易趣也正忙的不亦乐乎,2002 年 3 月,eBay 以 3000 万美元收购了易趣公司 33% 的股份,2003 年 6 月以 1.5 亿美元收购了易趣公司剩余 67% 的股份。当时淘宝网允许买卖双方留下联系方式,允许同城交易,整个操作过程简单轻松。而 eBay 为了收取交易佣金,是禁止这么做的,这必然增加了交易过程的难度。而且 eBay 为了全球统一,把易趣原来的系统替换成了美国 eBay 的系统,用户体验一下子全变了,操作起来非常麻烦,这等于是把积累的用户拱手送给了淘宝。为了不引起 eBay 的注意,淘宝网在 2003 年里一直声称自己是一个“个人网站”。由于这个创业团队强大的市场开拓和运营能力,淘宝网发展的非常迅猛,2003 年底就吸引了注册用户XXX,最高每日 31 万PV,从 5 月到年底成交额 4000 万。这没有引起 eBay 的注意,却引起了阿里巴巴内部很多员工的注意,他们觉得这个网站以后会成为阿里巴巴强劲的对手。甚至有人在内网发帖,忠告管理层要警惕这个刚刚起步的网 站,但管理层似乎无动于衷。(这个团队的保密工作做的真好)
在市场和运营的后方,淘宝网的技术团队也在快速的做着系统的改进和创新。这里还有个有趣的故事,eBay 和易趣早期都有员工在论坛上响应用户的需求,eBay 的论坛用粉红色背景来区分员工的发言,易趣的员工在论坛上昵称都选各种豆豆,例如黄豆豆、蚕豆豆等。淘宝在讨论运营策略的时候提到这个问题,要求所有的员 工都去论坛上回答用户的问题。最早回答问题的任务落在小宝头上,那我们用什么名字好呢?“淘淘”?“宝宝”?小宝都不满意,太女性化了。讨论了很久之后, 小宝灵光乍现,干脆取个名字叫“小宝”吧,小宝带七个老婆来开店,迎接各位客官,很有故事性。于是很多武侠小说中的人物开始在论坛中行侠仗义,这些昵称下 面标志着“淘宝店小二”,他们回答着各种各样的问题,快速响应着用户的各种需求。如果是技术上能解决的,几个人商量一下,马上就开发、测试、发布上线。反 过来对比一下,易趣被 eBay 收购之后,系统更换成了全球通用的版本,响应用户的一个需求需要层层审批,反应速度自然慢了下来。
当时淘宝第一个版本的系统里面已经包含了商品发布、管理、搜索、商品详情、出价购买、评价投诉、我的淘宝这些功能(现在主流程中也是这些模块。在 2003 年 10 月增加了一个功能节点:“安全交易”,这个是支付宝的雏形)。随着用户需求和流量的不断增长,系统上面做了很多的日常改进,服务器由最初的一台变成了三 台,一台负责发送 email、一台负责运行数据库、一台负责运行 Web App。过一段时间之后,商品搜索的功能占用数据库资源太大了(用like搜索的,很慢),又从阿里巴巴中文站搬过来他们的搜索引擎 iSearch,起初 iSearch 索引的文件放在硬盘上,随着数据量的增长,又采购了 NetApp 服务器放置 iSearch。
如此快节奏的工作,其实大家都累得不行,有人就提议大家随时随地的锻炼身体,可是外面 SARS 横行,在一个一百多方的房子里,怎么锻炼呢?高挑美女阿珂提议大家练习提臀操,这个建议遭到男士的一致反对,后来虚竹就教大家练习倒立,这个大家都能接 受。于是这个倒立的传统一直延续至今,和花名文化、武侠文化一并传承了下来。
随着访问量和数据量的飞速上涨,问题很快就出来了,第一个问题出现在数据库上。MySQL 当时是第 4 版的,我们用的是默认的存储引擎 MyISAM,这种类型读数据的时候会把表锁住(我们知道 Oracle 在写数据的时候会有行锁,读数据的时候是没有的),尤其是主库往从库上面写数据的时候,会对主库产生大量的读操作,使得主库性能急剧下降。这样在高访问量 的时候,数据库撑不住了。另外,当年的 MySQL 不比如今的 MySQL,在数据的容量和安全性方面也有很多先天的不足(和 Oracle 相比)。
二、Oracle/支付宝/旺旺
淘宝网作为个人网站发展的时间其实并不长,由于它太引人注目了,马云在 2003 年 7 月就宣布了这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的运作。最着名的就是利用中小网站来做广告,突围 eBay 在门户网站上对淘宝的广告封锁。上网比较早的人应该还记得那些在右下角的弹窗和网站腰封上一闪一闪的广告。市场部那位到处花钱买广告的家伙,太能花钱了, 一出手就是几百万,他被我们称为“大少爷”。
“大少爷”们做的广告,带来的就是迅速上涨的流量和交易量。在 2003 年底,MySQL 已经撑不住了,技术的替代方案非常简单,就是换成 Oracle。换 Oracle 的原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。在 2003 年的时候,阿里巴巴已经有一支很强大的 DBA 团队了,有冯春培、汪海(七公)这样的人物,后来还有冯大辉(@fenng)、陈吉平(拖雷)。这样的人物牛到什么程度呢?Oracle 给全球的技术专家颁发一些头衔,其中最高级别的叫 ACE(就是扑克牌的“尖儿”,够大的吧),被授予这个头衔的人目前全球也只有 300 多名(名单在这里: http://apex.oracle.com/pls/otn/f?p=19297:3 ),当年全球只有十几名。有如此强大的技术后盾,把 MySQL 换成 Oracle 是顺理成章的事情。
但更换数据库不是只换个库就可以的,访问方式,SQL 语法都要跟着变,最重要的一点是,Oracle 并发访问能力之所以如此强大,有一个关键性的设计 —— 连接池。但对于 PHP 语言来说它是放在 Apache 上的,每一个请求都会对数据库产生一个连接,它没有连接池这种功能(Java 语言有 Servlet 容器,可以存放连接池)。那如何是好呢?这帮人打探到 eBay 在 PHP 下面用了一个连接池的工具,是 BEA 卖给他们的。我们知道 BEA 的东西都很贵,我们买不起,于是多隆在网上寻寻觅觅,找到一个开源的连接池代理服务 SQLRelay(http://sourceforge.jp/projects/freshmeat_sqlrelay ),这个东西能够提供连接池的功能,多隆对它进行了一些功能改进之后就拿来用了。这样系统的架构就变成了如下的样子:
淘宝架构框架
数据一开始是放在本地的,DBA 们对 Oracle 做调优的工作,也对 SQL 进行调优。后来数据量变大了,本地存储不行了。买了 NAS(Network Attached Storage:网络附属存储),NetApp 的 NAS 存储作为了数据库的存储设备,加上 Oracle RAC(Real Application Clusters,实时应用集群)来实现负载均衡。七公说这实际上是走了一段弯路,NAS 的 NFS(Network File System)协议传输的延迟很严重,但那时侯不懂。后来采购了 Dell 和 EMC 合作的 SAN 低端存储,性能一下子提升了 10 几倍,这才比较稳定了。再往后来数据量更大了,存储的节点一拆二、二拆四,RAC 又出问题了。这才踏上了购买小型机的道路。在那段不稳定的时间里,七公曾经在机房住了 5 天 5 夜。
替换完数据库,时间到了 2004 年春天,俗话说“春宵一刻值千金”,但这些人的春宵却不太好过了。他们在把数据的连接放在 SQLRelay 之后就噩梦不断,这个代理服务经常会死锁,如同之前的 MySQL 死锁一样。虽然多隆做了很多修改,但当时那个版本内部处理的逻辑不对,问题很多,唯一解决的办法就是“重启”它的服务。这在白天还好,连接上机房的服务 器,把进程杀掉,然后开启就可以了,但是最痛苦的是它在晚上也要死掉,于是工程师们不得不 24 小时开着手机,一旦收到“ SQLRelay 进程挂起”的短信,就从春梦中醒来,打开电脑,连上机房,重启服务。后来干脆每天睡觉之前先重启一下。做这事最多的据说是三丰,他现在是淘宝网的总裁。现 在我们知道,任何牛B的人物,都有一段苦B的经历。
微博上有人说“好的架构是进化来的,不是设计来的”。的确如此,其实还可以再加上一句“好的功能也是进化来的,不是设计来的”。在架构的进化过程中,业 务的进化也非常迅猛。最早的时候,买家打钱给卖家都是通过银行转账汇款,有些骗子收了钱却不发货,这是一个很严重的问题。然后这伙人研究了 PayPal 的支付方式,发现也不能解决问题。后来这几个聪明的脑袋又想到了“担保交易”这种第三方托管资金的办法。于是在 2003 年 10 月,淘宝网上面上线了一个功能,叫做“安全交易”,卖家选择支持这种功能的话,买家会把钱交给淘宝网,等他收到货之后,淘宝网再把钱给卖家。这就是现在的 支付宝,在前两天(2012.2.21)年会上,支付宝公布 2011 年的交易笔数已经是 PayPal 的两倍。这个划时代的创新,其实就是在不断的思索过程中的一个灵光乍现。
当时开发“安全交易”功能的是茅十八和他的徒弟苗人凤(茅十八开发到一半去上海读 MBA 去了,苗人凤现在是支付宝的首席业务架构师),开发跟银行网关对接的功能的是多隆。当时多数银行的网站已经支持在线支付了,但多隆告诉我,他们的网关五花 八门,用什么技术的都有,必须一家一家去接。而且他们不保证用户付钱了就一定扣款成功、不保证扣款成功了就一定通知淘宝、不保证通知淘宝了就一定能通知 到、不保证通知到了就不重复通知。这害苦了苗人凤,他必须每天手工核对账单,对不齐的话就一定是有人的钱找不到地方了,少一分钱都睡不着觉。另外他为了测 试这些功能,去杭州所有的银行都办理了一张银行卡。一堆银行卡摆在桌子上,不知道的人还以为这个家伙一定很有钱,其实里面都只是十块八块的。现在我们再一 次知道,任何牛B的人物,都必须有一段苦B的经历。
有人说淘宝打败易趣(eBay 中国)是靠免费,其实这只是原因之一。如果说和易趣过招第一招是免费的话,这让用户没有门槛就愿意来,那第二招就是“安全支付”,这让用户放心付款,不必 担心被骗。在武侠小说中真正的高手飞花摘叶即可伤人,他们不会局限于一招两招,一旦出手,连绵不绝。而淘宝的第三招就是“旺旺”,让用户在线沟通。其实淘 宝旺旺也不是自己生出来的,是从阿里巴巴的“贸易通”复制过来的。从 2004 年 3 月开始,“叮咚、叮咚”这个经典的声音就回荡在所有淘宝买家和卖家的耳边,“亲,包邮不?”,“亲,把零头去掉行不?”,这亲切的砍价声造就了后来的“淘 宝体”。有人说中国人就是爱砍价,虽然笔者体会不到砍价成功后有多少成就感,但每次我去菜市场,看到大妈们砍价砍得天昏地暗,那满足的劲头堪比捡到了钱, 我就深刻的理解了淘宝旺旺在交易过程中的价值。我猜 eBay 也体会不到砍价的乐趣,他们一直不允许买卖双方在线聊天,收购了 skype 之后也没有用到电子商务中去。
旺旺在推出来没多久,就惹了一个法律方面的麻烦。有个做雪饼的厂家找上门来,说我们侵权了,他们家的雪饼很好吃,牛奶也做得不错,我们都很喜欢。然后我 们就在旺旺的前面加了两个字,叫做“淘宝旺旺”。在那个野蛮生长的阶段,其实很多产品都是想到什么就做什么,例如我们还搭建过一个聊天室,但似乎淘宝网不 是一个闲聊的地方,这个聊天室门可罗雀,一段时间后就关闭掉了。
SQLRelay 的问题搞得三丰他们很难睡个囫囵觉,那一年开半年会的时候,公司特地给三丰颁了一个奖项,对他表示深切的安慰。但不能总这样啊,于是,2004 年的上半年开始,整个网站就开始了一个脱胎换骨的手术。
三、淘宝技术发展(Java时代:脱胎换骨)
我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来。后来我看了很多系统的架构,发现这个言论基本成立。那么反观淘宝前面的两个版本的架构,你看哪个比较美?
淘宝架构框架
淘宝架构框架
显然第一个比较好看,后面那个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。2004 年初,SQL Relay 的问题解决不了,数据库必须要用 Oracle,那从哪里动刀?只有换开发语言了。换什么语言好呢?Java。Java 是当时最成熟的网站开发语言,它有比较良好的企业开发框架,被世界上主流的大规模网站普遍采用,另外有 Java 开发经验的人才也比较多,后续维护成本会比较低。
到 2004 年上半年,淘宝网已经运行了一年的时间,这一年积累了大量的用户,也快速的开发了很多功能,当时这个网站已经很庞大了,而且新的需求还在源源不断的过来。 把一个庞大的网站的开发语言换掉,无异于脱胎换骨,在换的过程中还不能拖慢业务的发展,这无异于边换边跑,对时间和技术能力的要求都非常高。做这样的手 术,需要请第一流的专家来主刀。现在再考一下读者,如果你在这个创业团队里面,请什么样的人来做这事?我们的答案是请 Sun 的人。没错,就是创造 Java 语言的那家公司,世界上没有比他们更懂 Java 的了。除此之外,还有一个不为人知的原因,……(此处和谐掉 200 字,完整版见 aliway)
这帮 Sun 的工程师的确很强大,在笔者 2004 年底来淘宝的时候,他们还在,有幸跟他们共事了几个月。现在摆在他们面前的问题是用什么办法把一个庞大的网站从 PHP 语言迁移到 Java?而且要求在迁移的过程中,不停止服务,原来系统的 bugfix 和功能改进不受影响。亲,你要是架构师,你怎么做?有人的答案是写一个翻译器,如同把中文翻译成英文一样,自动翻译。我只能说你这个想法太超前了,换个说 法就是“too simple, sometimes naive”。当时没有,现在也没有人能做到。他们的大致方案是给业务分模块,一个模块一个模块的替换。如用户模块,老的 member.taobao.com 继续维护,不添加新功能,新的功能先在新的模块上开发,跟老的共用一个数据库,开发完毕之后放到不同的应用集群上,另开个域名 member1.taobao.com,同时替换老的功能,替换一个,把老的模块上的功能关闭一个,逐渐的把用户引导到 member1.taobao.com,等所有功能都替换完毕之后,关闭 member.taobao.com。后来很长时间里面都是在用 member1 这样奇怪的域名,两年后有另外一家互联网公司开始做电子商务了,我们发现他们的域名也叫 member1.xx.com、auction1.xx.com……
说了开发模式,再说说用到的 Java MVC 框架,当时的 Struts 1.x 是用的比较多的框架,但是用过 WebWork 和 Struts 2 的同学可能知道,Struts 1.x 在多人协作方面有很多致命的弱点,由于没有一个轻量框架作为基础,因此很难扩展,这样架构师对于基础功能和全局功能的控制就很难做到。而阿里巴巴的 18 个创始人之中,有个架构师,在 Jakarta Turbine 的基础上,做了很多扩展,打造了一个阿里巴巴自己用的 MVC 框架 WebX (http://www.openwebx.org/docs/Webx3_Guide_Book.html), 这个框架易于扩展,方便组件化开发,它的页面模板支持 JSP 和 Velocity 等、持久层支持 iBATIS 和 Hibernate 等、控制层可以用 EJB 和 Spring(Spring 是后来才有的)。项目组选择了这个强大的框架,这个框架如果当时开源了,也许就没有 WebWork 和 Struts 2 什么事了。另外,当时 Sun 在全世界大力推广他们的 EJB,虽然淘宝的架构师认为这个东东用不到,但他们还是极力坚持。在经历了很多次的技术讨论、争论和争吵之后,这个系统的架构就变成了下图的样子:
淘宝架构框架
Java 应用服务器是 Weblogic,MVC 框架是 WebX、控制层用了 EJB、持久层是 iBATIS,另外为了缓解数据库的压力,商品查询和店铺查询放在搜索引擎上面。这个架构图是不是好看了一点了,亲?
这帮 Sun 的工程师开发完淘宝的网站之后,又做了一个很牛的网站,叫“支付宝”。
其实在任何时候,开发语言本身都不是系统的瓶颈,业务带来的压力更多的是压到了数据和存储上。上面一篇也说到,MySQL 撑不住了之后换 Oracle,Oracle 的存储一开始在本机上,后来在 NAS 上,NAS 撑不住了用 EMC 的 SAN 存储,再然后 Oracle 的 RAC 撑不住了,数据的存储方面就不得不考虑使用小型机了。在 2004 年的夏天,DBA 七公、测试工程师郭芙和架构师行癫,踏上了去北京测试小型机的道路。他们带着小型机回来的时候,我们像欢迎领袖一样的欢迎他们,因为那个是我们最值钱的设 备了,价格表上的数字吓死人。小型机买回来之后我们争相合影,然后 Oracle 就跑在了小型机上,存储方面从 EMC 低端 cx 存储到 Sun oem hds 高端存储,再到 EMC dmx 高端存储,一级一级的往上跳。
到现在为止,我们已经用上了 IBM 的小型机、Oracle 的数据库、EMC 的存储,这些东西都是很贵的,那些年可以说是花钱如流水啊。有人说过“钱能解决的问题,就不是问题”,但随着淘宝网的发展,在不久以后,钱已经解决不了我 们的问题了。花钱买豪华的配置,也许能支持 1 亿 PV 的网站,但淘宝网的发展实在是太快了,到了 10 亿怎么办?到了百亿怎么办?在 N 年以后,我们不得不创造技术,解决这些只有世界顶尖的网站才会遇到的问题。后来我们在开源软件的基础上进行自主研发,一步一步的把 IOE(IBM 小型机、Oracle、EMC 存储)这几个“神器”都去掉了。这就如同在《西游记》里面,妖怪们拿到神仙的兵器会非常厉害,连猴子都能够打败,但最牛的神仙是不用这些神器的,他们挥一 挥衣袖、翻一下手掌就威力无比。去 IOE 这一部分会在最后一个章节里面讲,这里先埋个千里伏笔。
欲知后事如何,且听下回分解。

❻ ecshop mysql 数据库存放在哪

数据库的文件在includes/cls_mysql.php
ECShop其他的目录:
┣ activity.php 活动列表
┣ affiche.php 广告处理文件
┣ affiliate.php 生成商品列表
┣ article.php 文章内容
┣ article_cat.php文章分类
┣ auction.php 拍卖前台文件
┣ brand.php 品牌列表
┣ captcha.php 生成验证码
┣ catalog.php 列出所以分类及品牌
┣ category.php 商品分类
┣ comment.php 提交用户评论
┣ compare.php 商品比较程序
┣ cycle_image.php 轮播图片程序
┣ feed.php RSS Feed 生成程序
┣ flow.php 购物流程
┣ gallery.php 商品相册
┣ goods.php 商品详情
┣ goods_script.php 生成商品列表
┣ group_buy.php 团购商品前台文件
┣ index.php 首页文件
┣ myship.php 支付配送DEMO
┣ pick_out.php 选购中心
┣ receive.php 处理收回确认的页面
┣ region.php 地区切换程序
┣ respond.php 支付响应页面
┣ robots.txt
┣ search.php 搜索程序
┣ sitemaps.php google sitemap 文件
┣ snatch.php 夺宝奇兵前台页面
┣ tag_cloud.php 标签云
┣ topic.php 专题前台
┣ user.php 会员中心
┣ vote.php 调查程序
┣ wholesale.php 批发前台文件
┣ admin文件夹
┃ ┣ account_log.php 管理中心帐户变动记录
┃ ┣ admin_logs.php 记录管理员操作日志
┃ ┣ ads.php 广告管理程序
┃ ┣ adsense.php 站外JS投放的统计程序
┃ ┣ ad_position.php广告位置管理程序
┃ ┣ affiliate.php 程序说明
┃ ┣ affiliate_ck.php 程序说明
┃ ┣ agency.php 管理中心办事处管理
┃ ┣ area_manage.php 地区列表管理文件
┃ ┣ article.php 管理中心文章处理程序文件
┃ ┣ articlecat.php 文章分类管理程序
┃ ┣ article_auto.php
┃ ┣ attention_list.php
┃ ┣ attribute.php 属性规格管理
┃ ┣ auction.php 管理中心拍卖活动管理
┃ ┣ bonus.php 红包类型的处理
┃ ┣ brand.php管理中心品牌管理
┃ ┣ captcha_manage.php
┃ ┣ card.php 贺卡管理程序
┃ ┣ category.php 商品分类管理程序
┃ ┣ check_file_priv.php 系统文件检测
┃ ┣ comment_manage.php 用户评论管理程序
┃ ┣ convert.php 转换程序
┃ ┣ cron.php 计划任务
┃ ┣ database.php 数据库管理
┃ ┣ ebao_commend.php 易宝推荐
┃ ┣ edit_languages.php 管理中心语言项编辑(前台语言项)
┃ ┣ email_list.php 邮件列表管理
┃ ┣ favourable.php 管理中心优惠活动管理
┃ ┣ flashplay.php
┃ ┣ flow_stats.php 综合流量统计
┃ ┣ friend_link.php 友情链接管理
┃ ┣ gen_goods_script.php 生成显示商品的js代码
┃ ┣ get_password.php 找回管理员密码
┃ ┣ goods.php 商品管理程序
┃ ┣ goods_auto.php
┃ ┣ goods_batch.php 商品批量上传、修改
┃ ┣ goods_booking.php 缺货处理管理程序
┃ ┣ goods_export.php
┃ ┣ goods_type.php 商品类型管理程序
┃ ┣ group_buy.php 管理中心团购商品管理
┃ ┣ guest_stats.php 客户统计
┃ ┣ index.php 控制台首页
┃ ┣ integrate.php 第三方程序会员数据整合插件管理程序
┃ ┣ magazine_list.php
┃ ┣ mail_template.php 管理中心模版管理程序
┃ ┣ message.php 管理中心管理员留言程序
┃ ┣ navigator.php
┃ ┣ order.php 订单管理
┃ ┣ order_stats.php 订单统计
┃ ┣ pack.php 包装管理程序
┃ ┣ payment.php 支付方式管理程序
┃ ┣ picture_batch.php 图片批量处理程序
┃ ┣ privilege.php 管理员信息以及权限管理程序
┃ ┣ sale_general.php 销售概况
┃ ┣ sale_list.php 销售明细列表程序
┃ ┣ sale_order.php 商品销售排行
┃ ┣ searchengine_stats.php 搜索引擎关键字统计
┃ ┣ search_log.php
┃ ┣ shipping.php 配送方式管理程序
┃ ┣ shipping_area.php 配送区域管理程序
┃ ┣ shophelp.php 帮助信息管理程序
┃ ┣ shopinfo.php 网店信息管理页面
┃ ┣ shop_config.php 管理中心商店设置
┃ ┣ sitemap.php 站点地图生成程序
┃ ┣ sms.php 短信模块 之 控制器
┃ ┣ snatch.php 夺宝奇兵管理程序
┃ ┣ sql.php sql管理程序
┃ ┣ tag_manage.php 后台标签管理
┃ ┣ template.php 管理中心模版管理程序
┃ ┣ topic.php 专题管理
┃ ┣ users.php 会员管理程序
┃ ┣ users_order.php 会员排行统计程序
┃ ┣ user_account.php 会员帐目管理(包括预付款,余额)
┃ ┣ user_msg.php 客户留言
┃ ┣ user_rank.php 会员等级管理程序
┃ ┣ view_sendlist.php
┃ ┣ virtual_card.php 虚拟卡商品管理程序
┃ ┣ visit_sold.php 访问购买比例
┃ ┣ vote.php 调查管理程序
┃ ┣ wholesale.php 管理中心批发管理
┃ ┣ help 的目录 后台操作帮助文件
┃ ┣ images 的目录
┃ ┣ includes 的目录
┃ ┃ ┣ cls_exchange.php 后台自动操作数据库的类文件
┃ ┃ ┣ cls_google_sitemap.php Google sitemap 类
┃ ┃ ┣ cls_phpzip.php ZIP 处理类
┃ ┃ ┣ cls_sql_mp.php 数据库导出类
┃ ┃ ┣ inc_menu.php 管理中心菜单数组
┃ ┃ ┣ init.php 管理中心公用文件
┃ ┃ ┣ lib_goods.php 管理中心商品相关函数
┃ ┃ ┣ lib_main.php 管理中心公用函数库
┃ ┃ ┗ lib_template.php 管理中心模版相关公用函数库
┃ ┣ styles 的目录
┃ ┣ templates 的目录
┃ ┗ js 的目录
┃ ┣ colorselector.js
┃ ┣ common.js
┃ ┣ listtable.js
┃ ┣ md5.js
┃ ┣ selectzone.js
┃ ┣ tab.js
┃ ┣ todolist.js
┃ ┣ topbar.js
┃ ┗ validator.js 表单验证类
┣ api 的目录
┃ ┣ checkorder.php 检查订单 API
┃ ┣ cron.php
┃ ┗ init.php API 公用初始化文件
┣ cert 的目录
┣ data 的目录
┃ ┣ ffiliate.html
┃ ┣ goods_script.html
┃ ┣ order_print.html
┃ ┣ afficheimg 的目录
┃ ┣ brandlogo 的目录
┃ ┣ captcha 的目录 验证码背景图片存放位置
┃ ┣ cardimg 的目录
┃ ┣ feedbackimg 的目录
┃ ┣ images 的目录
┃ ┣ packimg 的目录
┃ ┗ sqldata 的目录
┣ images 的目录
┃ ┗ upload 的目录
┃ ┣ File 文件上传存放处
┃ ┣ Flash flash上传存放处
┃ ┣ Image 图片上传存放处
┃ ┗ Media 视频上传存放处

❼ 急,求助ECshop拍卖

ecshop本身自己就有竞拍功能后台找一下,然后进行二次开发能满足条件

❽ php 网上竞拍,怎样在网页上做一个按钮,提交要竞拍的价格, 然后网页就能实时更新,不需要刷新网页!

使用 ajax,jquery很容易的,点击调用这个js
function a(){
var price=$('#price').val();
$.ajax({
type: 'get',
datatype: 'html',
url: '这是处理php文件的url,可以加个参数如&t=new,方便php页面接收&price='+price ,
success: function (data) {
$('#b').html(data);//b是显示区域的id
}
});
}

php 页面里面
if($_REQUEST['t']=='new'){
$price=$_REQUEST['price'];
此处更新数据库,更新成功后,echo $price;die();

}

❾ PHP 添加黑名单

用户啦黑名单,在用户数据表增加 一个字段名,比如"status",1:正常,2:VIP,3.....9:黑名单
就这么简单
如果没有会员,那就把IP拉入黑名单, 创建一个黑名单数据表, 网上有获取IP地址的封装函数

热点内容
自动编译div 发布:2025-01-12 18:51:06 浏览:660
手机路由器如何登陆密码 发布:2025-01-12 18:35:41 浏览:464
电光猫无法连接服务器是什么原因 发布:2025-01-12 18:32:58 浏览:512
迷你世界测试服的密码从哪里打开 发布:2025-01-12 18:25:32 浏览:111
我的世界手游tis服务器 发布:2025-01-12 18:24:28 浏览:585
青海省分布式服务器云主机 发布:2025-01-12 18:12:03 浏览:477
英雄联盟安卓手机版怎么切换 发布:2025-01-12 18:10:53 浏览:382
q5尊享时尚型哪些配置 发布:2025-01-12 18:05:41 浏览:230
安卓版本哪里下载 发布:2025-01-12 18:05:39 浏览:557
mc服务器搭建搜不到 发布:2025-01-12 17:57:37 浏览:19