PHP出错了,新人,我想这个问题肯定很好解决.

ootw 2008-04-21 01:59:49
错误提示:sql_class=SELECT news_class FROM hb_news_class
Catchable fatal error: Object of class stdClass could not be converted to string in D:\AppServ\www\wh2\admin_news_list.php on line 93

源代码如下
  <?
//mysql_free_result($result) or die("无法释放result资源!");
$hbdb = mysql_connect("localhost", "root","123456");
mysql_query('SET NAMES gb2312;');
if(!$hbdb){
echo "失败!";
exit;}
else{
echo "<!--数据库连接成功!-->";
}

mysql_select_db("uchihaitachi",$hbdb);

function hb_link_unbuffered($str){//连接数据库
global $hbdb;
$temp= mysql_unbuffered_query($str,$hbdb);
return $temp;
}
$sql="SELECT * FROM hb_news LIMIT 0,6 ";
$result=hb_link_unbuffered($sql);
if ($myrow = mysql_fetch_object($result)) {
do {
$id=$myrow->id;

$sql_class="SELECT news_class FROM hb_news_class where id={$id}";
$myrow_class = mysql_fetch_object($result_class);
echo "myrow_class={$myrow_class}<br>";
echo "sql_class=$sql_class";
//exit;
$result_class=hb_link_unbuffered($sql_class);
$myrow_class = mysql_fetch_object($result_class);
//这里就出错了,我是新人,请各位帮我看看吧.
echo "myrow_class={$myrow_class}<br>";
exit;
if($myrow_class = mysql_fetch_object($result_class)){
echo $myrow_class->news_class;
}
else{
echo "暂无分类";
}
}
while ($myrow = mysql_fetch_object($result));
}
else{
echo "没有记录";
}
mysql_free_result($result) or die("无法释放result资源!");
?>
...全文
1191 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ootw 2008-04-28
感谢:wanglinmingtina

我按照你说的修改之后运行正常了.

也感谢以上所有人,你们也告诉了我可能会发生的其他情况.
回复
herewei 2008-04-21
你报的这个错,和数据库没关系,
不能直接echo 一个对象,你要在类里面自己实现__toString()函数
回复
jlokys 2008-04-21
do {
$id=$myrow->id;

$sql_class="SELECT news_class FROM hb_news_class where id={$id}";
$myrow_class = mysql_fetch_object($result_class);//好像以上程序没有$result_class吧
是否可以将$result_class换成$sql_class试一下
echo "myrow_class={$myrow_class}<br>";
echo "sql_class=$sql_class";
//exit;
回复
ootw 2008-04-21
回:ten789
我就是试了才来发的,要不然也不会等这么久了.

你说的那种方法不能查询出全部的数据,如果只有十个新闻分类的话就只能查询出十条记录....

我是需要有多少条新闻就显示多少条,不是有多少条分类显示多少条新闻.

其实就是一个很简单的一个新闻显示页面,但是它的新闻分类名字是从另一个数据库取.

我是写ASP的,PHP是初学.试到这个位置的时候卡住了.

请多多帮忙,谢谢了.


回复
ten789 2008-04-21
不试试怎么知道
回复
ootw 2008-04-21
而且我换成了mysql_query也要出错...
回复
ootw 2008-04-21
回:xheaven 大侠,我是新人.刚才在google里找了一下有关那个魔术函数的网页,正在研究,还没有弄懂.

回:ten789 大侠,你提的用SQL语句把两句弄成一句的我知道,但是我需要显示新闻标题,然后根据新闻分类(数字)提取新闻分类的名字.

我有两个表,hb_news用来装新闻,但是新闻分类是用数字存一个news_class字段的.

然后用这个字段在hb_news_class表里面取分类的名字.

你说的那种方法不能查询出全部的数据,如果只有十个新闻分类的话就只能查询出十条记录....

能不能帮帮我实现我说的这种功能.

就是把所有新闻标题和新闻分类都列出来,谢谢.
回复
ten789 2008-04-21
注意: mysql_unbuffered_query() 的好处是有代价的:在 mysql_unbuffered_query() 返回的结果集之上不能使用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 发送一条新的 SQL 查询之前,必须提取掉所有未缓存的 SQL 查询所产生的结果行。

SELECT hb_news.*,hb_news_class.news_class FROM hb_news,hb_news_class WHERE hb_news_class.id=hb_news.id LIMIT 0,6
回复
herewei 2008-04-21
如果你要直接 echo 一个class的话,你需要在你的类里实现魔术函数

public fuction __toStrting(){

}
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-04-21 01:59
社区公告
暂无公告