关于数据库问题

#1 transcend

main.php
-----------------------------------------------
function index(){
     foreach($arr[0] as $k=>$v){
    $temporary=spClass("temporary");
  $conditions = array('t_id'=>'83');
  $sort='t_equipment';
  $this->hre=$temporary->findAll($conditions,$sort);        //把这个字段转换为十进制数
   $this->display("home/index.html");
}
----------------------------------------------------------
index.html
-----------------------------------------------------


    <{foreach from=$hre item=d}>
     

  •      
  • <{$d.['t_sid']}>
  •      //把转换完的数,在这里输出
            
  • <{$d.t_sid}>

  •         
  • <{$d.t_id}>

  •         
  • <{$d.t_sid}>

  •         
  • <{$d.t_sid}>

  •         
  • <{$d.t_sid}>

  •         
  • <{$d.t_sid}>.00

  •         
  • <{$d.t_sid}>

  •         
  • <{$d.t_sid}>

  •      <{/foreach}>
       


       
       

    -----------------------------------------------------
    在上面我怎么把一个字段提取出来,操作完,然后输出到index.html上

    2012-05-03 10:27:49

    #2 transcend

    帮忙分析下这段  <{foreach from=$hre item=d}>     我不知道为什么下面输出只能用d.我查考手册,用手册的方法不行。

    2012-05-03 10:37:14

    #3 jake

    transcend 发表于 2012-5-3 10:37
    帮忙分析下这段       我不知道为什么下面输出只能用d.我查考手册,用手册的方法不行。
    ...
    用手册的那段代码不行,建议把代码贴出。

    另外,在控制器dump($this->hre ) 看看值有没有取到。

    一般foreach最好不要用单字母
    <{foreach from=$hre item=d}>
    改成
    <{foreach from=$hre item=done}>

    还有 $sort='t_equipment';  这个sort字段,一般正式来说要带上ASC或DESC

    建议好好学习手册,不建议跳着看。

    如果还是不懂,可以直接使用我们的入门教程六的例子代码!



    2012-05-03 12:39:43

    #4 transcend

    jake 发表于 2012-5-3 12:39
    用手册的那段代码不行,建议把代码贴出。

    另外,在控制器dump($this->hre ) 看看值有没有取到。
    $temporary=spClass("temporary");
      $conditions = array('t_id'=>'83');
            $this->hre=$temporary->findAll($conditions);
      $p1=$temporary->findAll($conditions,null,"t_sid");
      dump($p1);           //查看获取到数据
      echo $p1['t_sid'];     //输出不了数据

    2012-05-03 14:55:00

    #5 transcend

    transcend 发表于 2012-5-3 14:55
    $temporary=spClass("temporary");
      $conditions = array('t_id'=>'83');
            $this->hre=$temporar ...
    怎么把获取来的数据转为字符串?
    $p2=substr($p1,5,20);   我用substr截取怎么截取不到数据?

    2012-05-03 15:09:47

    #6 jake

    dump($p1);
    数据什么样子的?

    你 echo $p1; 是不是显示 Array ?

    那么这是个数组,大概的用法是 echo $p1[0]['t_sid']; ,因为这是二维数组。

    麻烦写详细些,这样猜很难猜,谢谢!

    2012-05-03 16:32:03

    #7 transcend

    谢谢楼主耐心解决问题。我刚用这个框架,也是php菜鸟。

    2012-05-03 16:42:22

    #8 jake

    transcend 发表于 2012-5-3 16:42
    谢谢楼主耐心解决问题。我刚用这个框架,也是php菜鸟。
    提问的方式方法,和php菜鸟没什么关系,主要看提问的诚意。

    2012-05-03 18:23:30

    #9 transcend

    jake 发表于 2012-5-3 18:23
    提问的方式方法,和php菜鸟没什么关系,主要看提问的诚意。
    $this->hre=$temporary->findAll();
      $p1=$temporary->findAll(null,null,"t_equipment");  //查询t_equipment字段
      $sum=$temporary->findCount();     //查询总函数
             for($i=0;$i<=$sum;$i++)
      {
      $p2=substr($p1[$i]['t_equipment'],6,2);
      if($p2=='A7')
      {
      $p3=$p1[$i]['t_equipment'];
      }
      }
    function wendu()
      {
      $p4=hexdec(substr($p3,22,2));
      echo $p4;
      }
    ---------------------------------------------------------------------------
    怎么把上面的   $p4    输出来静态页面中
    ----------------------------------------------------------------------------


        <{foreach from=$hre item=done}>
         

  •      
  • 输出到这个位置

  •         
  • <{$done.t_sid}>

  •         
  • <{$done.t_id}>

  •         
  • <{$done.t_sid}>

  •         
  • <{$done.t_sid}>

  •         
  • <{$done.t_sid}>

  •         
  • <{$done.t_sid}>.00

  •         
  • <{$done.t_sid}>

  •         
  • <{$done.t_sid}>

  •      <{/foreach}>

    2012-05-03 18:34:00

    #10 transcend

    transcend 发表于 2012-5-3 18:34
    $this->hre=$temporary->findAll();
      $p1=$temporary->findAll(null,null,"t_equipment");  //查询t_eq ...
    解决这个问题,今晚就有时间认真的看一遍speedphp手册了。

    2012-05-03 18:35:33

    #11 jake

    transcend 发表于 2012-5-3 18:35
    解决这个问题,今晚就有时间认真的看一遍speedphp手册了。
    我猜测,你是要把函数放在模板里面使用,对吧。

    可以看看手册关于注册函数的部分 http://www.speedphp.com/view-functions.html

    2012-05-03 19:22:31

    #12 transcend

    jake 发表于 2012-5-3 19:22
    我猜测,你是要把函数放在模板里面使用,对吧。

    可以看看手册关于注册函数的部分 http://www.speedphp.c ...
    有点难理解,有详细点的案例吗?

    2012-05-03 20:15:12

    #13 jake

    transcend 发表于 2012-5-3 20:15
    有点难理解,有详细点的案例吗?
    估计你连看都没看就说难,例子里面的代码已经够详细和简单了。

    难在哪里?哪行字、哪段代码你不能理解了?你按照教程写程序写到什么地方写不下去了?能说得出来吗?所以证明你根本没看!

    如果连代码都希望别人写好让你复制粘贴,建议去找外包。

    2012-05-03 20:30:53

    #14 transcend

    jake 发表于 2012-5-3 18:23
    提问的方式方法,和php菜鸟没什么关系,主要看提问的诚意。
    main.php
    ------------------------------------------------------------------------------------------------
    $temporary=spClass("temporary");
    $p1=$temporary->findAll(null,null,"t_equipment");  //查询t_equipment字段
    $sum=$temporary->findCount();     //查询总函数
             for($i=0;$i<=$sum;$i++)    //循环找出A7
      {
      $p2=substr($p1[$i]['t_equipment'],6,2);
      if($p2=='A7')
      {
      $p3=$p1[$i]['t_equipment'];
      }
      }
      $this->wendu=hexdec(substr($p3,22,2));   //怎么这里有两个时候就不能输出了    一个时候可以输出
      $this->wendu=hexdec(substr($p3,22,2));
      $this->display("home/index.html");
    ---------------------------------------------------------------------------------------------------
    index.html
    ------------------------------------------------------------------------------------------------------

       
         

  •      
  • <{$wendu}>
  •         //输出空白
            
  • <{$wendu}>

  •         
  • <{$wendu}>

  •         
  • <{$shidu}>
  •       
            
  • <{$wendu}>

  •         
  • <{$wendu}>

  •         
  • <{$wendu}>.00

  •         
  • <{$wendu}>

  •         
  • <{$wendu}>

  •    

    -------------------------------------------------------------------------------------------------------
    提示错误:
    Data update failed! Please try again!
    Fatal error: Call to a member function findAll() on a non-object in D:\xampp\htdocs\controller\main.php on line 22

    ----------------------------------------------------------------------------------------------------------

    注册函数问题:

    2012-05-04 15:38:21

    #15 transcend

    jake 发表于 2012-5-3 20:30
    估计你连看都没看就说难,例子里面的代码已经够详细和简单了。

    难在哪里?哪行字、哪段代码你不能理解了 ...
    main.php
    ------------------------------------------------------------------------------------------------
    $temporary=spClass("temporary");
    $p1=$temporary->findAll(null,null,"t_equipment");  //查询t_equipment字段
    $sum=$temporary->findCount();     //查询总函数
             for($i=0;$i<=$sum;$i++)    //循环找出A7
      {
      $p2=substr($p1[$i]['t_equipment'],6,2);
      if($p2=='A7')
      {
      $p3=$p1[$i]['t_equipment'];
      }
      }
      $this->wendu=hexdec(substr($p3,22,2));   //怎么这里有两个时候就不能输出了    一个时候可以输出
      $this->wendu=hexdec(substr($p3,22,2));
      $this->display("home/index.html");
    ---------------------------------------------------------------------------------------------------
    index.html
    ------------------------------------------------------------------------------------------------------

       
         

  •      
  • <{$wendu}>
  •         //输出空白
            
  • <{$wendu}>

  •         
  • <{$wendu}>

  •         
  • <{$shidu}>
  •       
            
  • <{$wendu}>

  •         
  • <{$wendu}>

  •         
  • <{$wendu}>.00

  •         
  • <{$wendu}>

  •         
  • <{$wendu}>

  •    

    -------------------------------------------------------------------------------------------------------

    2012-05-04 15:39:28

    #16 jake

    {:soso_e141:}
    既然一个可以,为什么要两个呢。没有东西就空白呢出错就检查呗

    2012-05-04 16:11:37

    #17 transcend

    jake 发表于 2012-5-4 16:11
    既然一个可以,为什么要两个呢。没有东西就空白呢出错就检查呗 ...
    main.php
    ------------------------------------------------------------------------------------------------
    $temporary=spClass("temporary");
    $p1=$temporary->findAll(null,null,"t_equipment");  //查询t_equipment字段
    $sum=$temporary->findCount();     //查询总函数
             for($i=0;$i<=$sum;$i++)    //循环找出A7
      {
      $p2=substr($p1[$i]['t_equipment'],6,2);
      if($p2=='A7')
      {
      $p3=$p1[$i]['t_equipment'];
      }
      }
      $this->wendu=hexdec(substr($p3,22,2));   //怎么这里有两个时候就不能输出了    一个时候可以输出
    $this->shidu=hexdec(substr($p3,26,2));      //我是想输出两个变量,是不是  $this针问题?
      $this->display("home/index.html");
    ---------------------------------------------------------------------------------------------------
    index.html
    ------------------------------------------------------------------------------------------------------

       
         

  •      
  • <{$wendu}>
  •         //输出空白
            
  • <{$wendu}>

  •         
  • <{$wendu}>

  •         
  • <{$shidu}>
  •       
            
  • <{$wendu}>

  •         
  • <{$wendu}>

  •         
  • <{$wendu}>.00

  •         
  • <{$wendu}>

  •         
  • <{$wendu}>

  •    

    -------------------------------------------------------------------------------------------------------

    2012-05-05 10:35:09

    #18 jake

    其实你不一定要一下子就用模板的,你可以用echo,看看你自己的运算结果。

    为什么第二个没有输出,说不定一开始就没有值。

    前面我的回帖就说过调试的方法,按照调试的方法来试试吧。

    2012-05-05 11:09:17

    #19 transcend

    jake 发表于 2012-5-5 11:09
    其实你不一定要一下子就用模板的,你可以用echo,看看你自己的运算结果。

    为什么第二个没有输出,说不定一 ...
    我做的是温度计,温度变了,我的页面要刷新才变,有没有什么方法实现随着温度变化,模板上得温度跟着变化。
    给点思路。AJAX可以实现吗?

    2012-05-05 17:18:20

    #20 jake

    “随着温度变化”,怎么个变化法?

    从数据库读出来?从什么地方得到的?

    ajax肯定是可以,不过你关键的地方没有说清楚,所以不好说。

    2012-05-05 19:17:56

    #21 transcend

    jake 发表于 2012-5-5 19:17
    “随着温度变化”,怎么个变化法?

    从数据库读出来?从什么地方得到的?
    我在温度中获取数据存入数据库(数据库3秒更新一次),之后在php文件中提取数据、处理完。然后想让html文件上面的温度随着数据库的变化,显示的温度也变化,但是html页面不刷新。

    2012-05-07 09:32:05

    #22 jake

    “html页面不刷新”,用ajax吧。详情看手册ajax一章。

    2012-05-07 09:56:37

    #23 transcend

    jake 发表于 2012-5-7 09:56
    “html页面不刷新”,用ajax吧。详情看手册ajax一章。
    当数据库没有数据的时候,进去读数据,读出来的是零,用什么方法可以避免这个错误呢?

    2012-05-09 20:20:42

    #24 jake

    当数据库没有数据的时候,你可以给它设定一个“默认值”

    2012-05-09 21:05:40

    #25 transcend

    jake 发表于 2012-5-9 21:05
    当数据库没有数据的时候,你可以给它设定一个“默认值”
    不太合适,给个别的方法思路。温度计,不知道怎么给默认值。冬天,南方温度是零上,北方是零下。

    2012-05-10 16:17:21

    #26 transcend

    transcend 发表于 2012-5-10 16:17
    不太合适,给个别的方法思路。温度计,不知道怎么给默认值。冬天,南方温度是零上,北方是零下。
    ...
    不太合适,给个别的方法思路。温度计,不知道怎么给默认值。冬天,南方温度是零上,北方是零下。

    2012-05-10 16:20:08

    #27 jake

    简单来说就是:

    我现在要 值

    然后去查数据库

    得到返回值,但是“当数据库没有数据的时候,进去读数据,读出来的是零”

    所以:

    if 返回值 == 零 {

    if 现在是冬天 {

    if 这里是南方{
    值等于 零上
    }else{
    值等于 零下
    }

    }else if 现在是夏天 {

    if 这里是南方{
    值等于 什么都好
    }else{
    值等于 自己想吧
    }


    }

    }

    好了,我拿到值了。

    2012-05-10 16:31:42

    #28 transcend

    jake 发表于 2012-5-10 16:31
    简单来说就是:

    我现在要 值
    我找到了一个方法了,但是不是很好。
    原来的用一个文件不断更新数据库。当刚删除表里面的内容时候。进去度数据,读出来是零。


    我解决的方法是,不删除表,直接获取来的数据更新到数据库。
    但是第一次用系统的话,需要往数据库存入数据。

    2012-05-11 19:01:49

    #29 transcend

    jake 发表于 2012-5-10 16:31
    简单来说就是:

    我现在要 值
    php可以链接C++写的DLL吗?调用里面的函数。实现网络摄像头功能。

    2012-05-12 17:56:10

    #30 jake

    理论上是可以的,php可以载入c++编写的PHP扩展。

    或者可以用dl()函数来载入。

    2012-05-13 11:58:58

    #31 transcend

    jake 发表于 2012-5-13 11:58
    理论上是可以的,php可以载入c++编写的PHP扩展。

    或者可以用dl()函数来载入。 ...
    好的,注册函数的名字可以写成动态的吗?

    2012-05-18 20:54:14

    #32 jake

    transcend 发表于 2012-5-18 20:54
    好的,注册函数的名字可以写成动态的吗?
    不能,你见过PHP库函数有动态名字的吗?


    2012-05-18 21:16:31

    #33 transcend

    哦,这样

    2012-05-20 18:48:09