本帖最后由 msnly 于 2011-07-01 12:19:25 编辑

解决方案 »

  1.   

    SELECT * FROM 表 WHERE `express_no` IS NULL OR `express_no` = ''
      

  2.   

    1楼的朋友,我是个菜鸟,请把详细的关系式帮我列一下可以吗,如下
    $oc = array(
    'state' => 'pay',
    'team_id' => $id,
    'express_no' => '',
    );
      

  3.   

    就是
    $oc = array(
    'state' => 'pay',
    'team_id' => $id,
    'express_no' => '',
    );
    我该怎么写呢?
      

  4.   


    $sql = "SELECT * FROM 表 WHERE `express_no` IS NULL OR `express_no` = ''";
    $result = mysql_query($sql);
    while($oc = mysql_fetch_array($reustl,MYSQL_ASSOC){
        print $oc["state"];
        print $oc["team_id"];
        print $oc["express_no"];
    }
    是要这个么?
      

  5.   

    select ifnull(express_no, 'NULL') from tbl_name
      

  6.   

    是的,我说的就是按这种格式$oc = array(
    'state' => 'pay',
    'team_id' => $id,
    'express_no' => '',
    );state和team_id这两个都没事,我主要想知道
    'express_no' = 什么
    才能检索出所有的数据表中的值为(null)和()为空的数据,请注意哦,是这两个都要检索出来哦
    就相当于,例如把值为25和值为66的两种数据都找到
      

  7.   

    不就查询express_no为空或者为空字符的情况吗,写SQL不就行了。什么25跟26!!!描述清楚。
      

  8.   

    不就查询express_no为空或者为空字符的情况吗,写SQL不就行了。
    对的,就是把express_no为空和为空字符的两种都要查询出来
      

  9.   

    <?php
    require_once(dirname(dirname(dirname(__FILE__))) . '/app.php');need_manager();
    need_auth('et');$id = abs(intval($_GET['id']));
    $team = Table::Fetch('team', $id);if ( $team['delivery']=='express' ) {
    $oc = array(
    'state' => 'pay',
    'team_id' => $id,
    'express_no' => '',
    );
    $orders = DB::LimitQuery('order', array(
    'condition' => $oc,
    'order' => 'ORDER BY pay_time DESC, id DESC',
    ));
    $kn = array(
    'id' => '订单号',
    'buy_id' => '支付序号',
    'username' => '快递名称',
    'email' => '请在此填入快递单号',
    'realname' => '姓名',
    'mobile' => '手机号码',
    'address' => '地址',
    'quantity' => '数量',
    'condbuy' => '选项',
    're' => '备注',
    'date' => '支付时间',
    ); foreach($orders As $k=>$o) {
    $o['date'] = date('Y-m-d H:i', $o['pay_time']);
    $orders[$k] = $o;
    }这是完整的代码,麻烦大虾帮菜鸟改正成我所要想要的结果,我真的很菜,请不要介意。
      

  10.   

    order是表名,state和team_id和express_no都是字段名称,pay是值,$id是值,也就是当前项目的id,数据里边是120这样的存在,expreess_no的值分三种,1、填了快递运单号,就显示快递运单号,如:368405084858,这是申通的运单号,2、填入了快递名称,但没填快递运单号,值为空,3、也没填快递名称,也没填快递单号,也就是默认值,无任何操作,值为null
      

  11.   

    你这个数据库类是基于 ORM 的
    你不告诉我你的数据库类是从哪里来的,我怎么知道你这个类中还有什么方法可用呢?你的这段代码连过滤条件都没有
      

  12.   

    各位大虾,我真的不懂,什么叫DB类呀,我用的是mysql数据库,一个朋友帮忙解决了,以下是我个人的理解,说实话,我只是照着葫芦画瓢,没学过php,html也只是了解一点,所以说错了请各位大虾不要见笑。
    我只是凭自己的理解来修改网站,呵呵。我要实现的目的,就是筛选出当前项目的已付款的但未发货的订单。注明:id为当前产品项目的id,是个经常变动的数值,如5188,即当前项目是发布的第5188个产品项目。
    $id = abs(intval($_GET['id']));注明:team为产品项目的表名,delivery字段为产品类型,expreess值代表邮寄,coupon值为电子券。
    首先在表:team 中if ( $team['delivery']=='express' )在delivery字段筛选出所有符合express值的项目,也就是所有邮寄的项目。注明:order为产品订单的表名,state为付款字段,pay值代表已支付,nopay值代表未支付;team_id为项目字段,单表这个产品订单属于哪个项目,比如当前产品项目5188;express_id为快递公司字段,这里用不到,就不说了;express_no为运单号字段, 如:值为'368405084858',这是申通的运单号,对应express_id的值为(申通快递),值为''也就是为空,代表只填了快递公司名称,没有填运单号,值为'null'就是空字段,默认值,没有任何操作,也就是值为''和'null'都代表未发货。
    在数据库表 : order 中的state字段筛选出已付款的订单,也就是值为pay的订单,在express_no字段筛选出没有运单号的订单,也就是值为''和'null'的未发货订单,我的目的就达到了。在这以下的内容就跟本次问题无关了。下边是我朋友帮我修改的示例,给大家分享下:
    <?php
    require_once(dirname(dirname(dirname(__FILE__))) . '/app.php');need_manager();
    need_auth('et');$id = abs(intval($_GET['id']));
    $team = Table::Fetch('team', $id);if ( $team['delivery']=='express' ) {
    $oc = " state='pay' and team_id=".$id." and (express_no is null or express_no ='')";

    $orders = DB::LimitQuery('order', array(
    'condition' => $oc,
    'order' => 'ORDER BY pay_time DESC, id DESC',
    ));
    $kn = array(
    'id' => '订单号',
    'buy_id' => '支付序号',
    'username' => '快递名称',
    'email' => '请在此填入快递单号',
    'realname' => '姓名',
    'mobile' => '手机号码',
    'address' => '地址',
    'quantity' => '数量',
    'condbuy' => '选项',
    're' => '备注',
    'date' => '支付时间',
    ); foreach($orders As $k=>$o) {
    $o['date'] = date('Y-m-d H:i', $o['pay_time']);
    $orders[$k] = $o;
    }$oc = " state='pay' and team_id=".$id." and (express_no is null or express_no ='')";
    这一段就是我大家如何实现筛选出值为''为空和'null'空字符,也就是未发货的订单。