我无法理解为什么我在这里无法正确使用echo语句。
传递的链接获取脚本的值
http://example.com/example.php?page=2&hot=1002
下面是我的脚本,它从链接中获取GET值。
<?php
session_start();
require('all_functions.php');
if (!check_valid_user())
{
html_header("example", "");
}
else
{
html_header("example", "Welcome " . $_SESSION['valid_user']);
}
require('cat_body.php');
footer();
?>
cat_body.php如下:
<?php
require_once("config.php");
$hot = $_GET['hot'];
$result = mysql_query( "select * from cat, cat_images where cat_ID=$hot");
echo $result['cat_name'];
?>
请帮帮我。
答案 0 :(得分:0)
mysql_query
成功时返回结果资源(错误时返回false),而不是数据。要获取数据,您需要使用像mysql_fetch_assoc()
这样的获取函数,它返回带有列名作为数组键的数组。
$result = mysql_query( "select
* from cat, cat_images
where
cat_ID=$hot");
if ($result) {
$row = mysql_fetch_assoc($result);
echo $row['cat_name'];
} else {
// error in query
echo mysql_error();
}
//添加
您的查询定义不明确。首先,where
子句中的两个表之间没有定义关系
其次(这就是为什么你得到那条消息“在'where子句中的列'cat_ID'是不明确的”),两个表都有列cat_ID
,但你没有明确告诉mysql你正在使用哪个表的列。
查询应该看起来像这样(可能不是你需要的东西,所以要适当地改变它):
"SELECT * FROM cat, cat_images
WHERE cat.cat_ID = cat_images.cat_ID AND cat.cat_ID = " . $hot;
其中的cat.cat_ID = cat_images.cat_ID
部分通过组合这些列相同的行来表示这两个表是否已连接。
另外,在直接插入带有GET / POST数据的查询时要小心。详细了解(My)Sql injection。