thinkphp

seven002 2012-08-02 04:12:54

public function about()
{
require(CMS_PATH.'/data/config.php');
$id = trim($_REQUEST['id']);
$aboutclass = M('aboutclass');
$list_about=$aboutclass->where('id='.$id)->select();
$this->assign("aboutclass",$list_about);
dump($list_about);
$this->display();
}


本人刚开始学习THINKPHP,比如ID=2时这样写只能显示1个分类1条内容。我想ID=2时所有分类显示出来。内容只显示ID=2时对应的表内容。该怎么写?分类和内容是在一张表里的
...全文
247 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
franzhong 2012-08-03
  • 打赏
  • 举报
回复
你把数据查询变量海量输出,看哪句设了条件,把条件一改就行了,看变量名字
就那一两个页面,把最终返回数据的地方跟踪一下,那一条数据是如何出来的。找到这就好办了
看看是哪儿限制了总条数,另外在看看有哪些情况是不限制的,肯定都放一起了,你在这边满足它条件也是第二种方法,例如if($id!=1){/*激活条件二*/},这样能不对原结构破坏
你给的信息太少了,情况多种多样,核心的地方是数据库实现部分,表结构都不用看。
再研究研究
franzhong 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 2 楼 的回复:
单步调试,顺着ID=2往里找,直到找到一条SQL语句,把limit 0,1 改为 limit 0,-1

能具本点吗?我只有一张表,字段是ID ,TITLE(存放名称如公司简介,联系我们), CONTENT(存放名称对应内容)。如ID=2的时候只能卖出ID=2时的TITLE和CONTENT内容。我想让ID=2或等于其它的数时,始终卖出所有TITLE,其它不变
[/Quote]
你不就是想放开一条限制吗,你sql查询语句在哪,总能找到吧,先把那句上的限制放开,一般就是那儿设置了只取一条数据,找到那条SQL语句!
seven002 2012-08-03
  • 打赏
  • 举报
回复
急啊,加到100分,在线等。解决马上解贴给分
seven002 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
单步调试,顺着ID=2往里找,直到找到一条SQL语句,把limit 0,1 改为 limit 0,-1
[/Quote]
能具本点吗?我只有一张表,字段是ID ,TITLE(存放名称如公司简介,联系我们), CONTENT(存放名称对应内容)。如ID=2的时候只能卖出ID=2时的TITLE和CONTENT内容。我想让ID=2或等于其它的数时,始终卖出所有TITLE,其它不变
seven002 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你的逻辑有问题,分开看的话,首先你得显示分类,然后显示对应表里的内容。
[/Quote]

这张表内没存放如公司简介等,我要把所有名称读出来,点击名称会显示对应的内容。
franzhong 2012-08-03
  • 打赏
  • 举报
回复
单步调试,顺着ID=2往里找,直到找到一条SQL语句,把limit 0,1 改为 limit 0,-1
schutze 2012-08-03
  • 打赏
  • 举报
回复
你的逻辑有问题,分开看的话,首先你得显示分类,然后显示对应表里的内容。
回忆那么久 2012-08-03
  • 打赏
  • 举报
回复

public function about()
{
require(CMS_PATH.'/data/config.php');
$id = trim($_REQUEST['id']);
$aboutclass = M('aboutclass');
$list_about['content']=$aboutclass->where('id='.$id)->select();
$list_about['category']=$aboutclass->select();
$this->assign("aboutclass",$list_about);
dump($list_about);
$this->display();
}

这样怎么样?其实也可以自连接。 不知道lz这样要这样的目的
加群中国PHP军团(7948162)讨论
franzhong 2012-08-03
  • 打赏
  • 举报
回复
要说更好的方法,就是顺蔓摸瓜,找到根源,修正既可,能常记录条数是limit所致
不过这样写也有这样写好处,没有破坏框架结构,别人用一切正常
不用考虑这地方被你修改过了,其实主要原因在那个id上,你改后你要记住这块被改的,
多看看源码,吃透了改啥都好办,祝你更进一步
seven002 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
这不是判断的问题,我听你说了半天你根本不知SQL查询语句是从何时开始的
你把id改为8结果还是出一条id为8的数据?
改为9还是一条?
这就对了!id就是那个primary key就是一条,你得改条件
现在是封好的语句,你给我人名张三的名字,我告诉你他有多少钱
你现在需求是,我告诉你人名李四,你把所有人钱告诉我,
你想想你还告诉我李四干嘛(id),直接要所有人钱得了
基于这是个框架,……
[/Quote]


非常感谢,你给的这写法是可以的。也万分感谢给我写了这么多字的提示。最终我是这样写的。请指教,
不知道还有没有更好的方法,准备结贴


$id = trim($_REQUEST['id']);
$aboutclass = M('aboutclass');
$name = $aboutclass->field('class,id')->findall();
$list_about=$aboutclass->query("select * from bc_aboutclass where id = ".$id." order by id desc");
$this->assign("list_about",$list_about);
$this->assign("name",$name);
$this->display();
franzhong 2012-08-03
  • 打赏
  • 举报
回复
这不是判断的问题,我听你说了半天你根本不知SQL查询语句是从何时开始的
你把id改为8结果还是出一条id为8的数据?
改为9还是一条?
这就对了!id就是那个primary key就是一条,你得改条件
现在是封好的语句,你给我人名张三的名字,我告诉你他有多少钱
你现在需求是,我告诉你人名李四,你把所有人钱告诉我,
你想想你还告诉我李四干嘛(id),直接要所有人钱得了
基于这是个框架,你深入改也找不到地方
建议你重写个数据库操作的就几句话,不用他们的,给个名回个钱
你把这个实现注释掉(为了想明白时候再恢复),表段啥不都知道吗


if(isset($id)){//只要有id传来,就查全部,定制函数
$con = mysql_connect("localhost","peter","abc123");//用正确的
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);//用你的db
mysql_query("SET NAMES utf8");
$res = mysql_query("SELECT * from tableName");//你的表名字
while($row = mysql_fetch_array($res)){
echo $row['TITLE'];//看好你的字段名,都这样调用
}
mysql_close($con);
}

你先测试,通过了,把你配置文件引入用定义的常量统一,把提示的地方都改了
seven002 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
引用 8 楼 的回复:

引用 7 楼 的回复:
你把数据查询变量海量输出,看哪句设了条件,把条件一改就行了,看变量名字
就那一两个页面,把最终返回数据的地方跟踪一下,那一条数据是如何出来的。找到这就好办了
看看是哪儿限制了总条数,另外在看看有哪些情况是不限制的,肯定都放一起了,你在这边满足它条件也是第二种方法,例如if($id!=1){/*激活条件二*/},这样能不对原结构破坏
你给……
[/Quote]

public function about()
{
require(CMS_PATH.'/data/config.php');
$id = trim($_REQUEST['id']);
$aboutclass = M('aboutclass');
$list_about=$aboutclass->where('id='.$id)->select();
$this->assign("aboutclass",$list_about);
dump($list_about);
$this->display();
}


这两个地方做了限制ID,这样做会限制全部。现在程序ID=N时,读都是N对应的数据,我要读N对应数据的同时读出所有TITLE这了段,怎么写判断?
franzhong 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 7 楼 的回复:
你把数据查询变量海量输出,看哪句设了条件,把条件一改就行了,看变量名字
就那一两个页面,把最终返回数据的地方跟踪一下,那一条数据是如何出来的。找到这就好办了
看看是哪儿限制了总条数,另外在看看有哪些情况是不限制的,肯定都放一起了,你在这边满足它条件也是第二种方法,例如if($id!=1){/*激活条件二*/},这样能不对原结构破坏
你给的信息太少了,情况多种多样……
[/Quote]
好,找到这地方也就进很大一步了,下面你确认这个id段内会有多个数据,例如里面本来就一条数据,你这样的条件造成就一个数据,那你就没办法了,比方你的id段为primary key auto increment,那么这个id在表中本来就只会有一条数据,你必须更换条件,明白我的意思了没。
(打哑迷就是有这种坏处)
蹲坑看月亮 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

你把数据查询变量海量输出,看哪句设了条件,把条件一改就行了,看变量名字
就那一两个页面,把最终返回数据的地方跟踪一下,那一条数据是如何出来的。找到这就好办了
看看是哪儿限制了总条数,另外在看看有哪些情况是不限制的,肯定都放一起了,你在这边满足它条件也是第二种方法,例如if($id!=1){/*激活条件二*/},这样能不对原结构破坏
你给的信息太少了,情况多种多样,核心的地方是数据库实现部分……
[/Quote]
恩,找到那个改改就行了
seven002 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
你把数据查询变量海量输出,看哪句设了条件,把条件一改就行了,看变量名字
就那一两个页面,把最终返回数据的地方跟踪一下,那一条数据是如何出来的。找到这就好办了
看看是哪儿限制了总条数,另外在看看有哪些情况是不限制的,肯定都放一起了,你在这边满足它条件也是第二种方法,例如if($id!=1){/*激活条件二*/},这样能不对原结构破坏
你给的信息太少了,情况多种多样,核心的地方是数据库实现部分,……
[/Quote]


$id = trim($_REQUEST['id']);

这里是传了ID才会被限制读当前ID对应的信息。如果我不传ID就会显示出来,关键就是我传ID后,即要显示当前ID对应的CONTENT字段内,又要不受ID干扰显示全部TITLE字段内容

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧