首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的内容没有显示?

为什么我的内容没有显示?
EN

Stack Overflow用户
提问于 2012-05-18 07:30:38
回答 3查看 54关注 0票数 1

工作原理:点击相册会带你进入"album.php?id=#“

代码语言:javascript
复制
//initialize some vars
$albumID = '';

//check what photo we are looking for
if(isset($_GET['id'])){
    $albumID = mysql_real_escape_string($_GET['id']);

查询:

代码语言:javascript
复制
$sql = mysql_query(
SELECT *
FROM albums
JOIN songs
ON albums.performer=songs.performer
WHERE albums.albumID='albumID'
);

我要做的就是让它显示专辑和曲目列表。有人知道我应该如何解决这个问题吗?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-18 07:50:25

首先将您的查询放在一个字符串中:

代码语言:javascript
复制
$query = "SELECT * FROM albums JOIN songs ON albums.performer=songs.performer";

然后,如果存在专辑,则添加到该查询中:

代码语言:javascript
复制
if ( !empty( $albumID ) ) {
  $query = $query . " WHERE albums.albumID = $albumID";
}

此时,我们可以继续运行查询:

代码语言:javascript
复制
$result = mysql_query( $query ) or die( mysql_error() );

我们使用mysql_query运行查询,并将其结果传递给$result变量。如果出现任何错误,比如查询中的错误,我们的程序将执行die,并且最新的mysql_error()将打印到屏幕上。

使用我们的$result变量,我们现在可以循环并打印结果:

代码语言:javascript
复制
while ( $row = mysql_fetch_object( $result ) ) {
  echo $row->columnA
}

请注意,columnA是一个占位符,您应该在其中实际写入已存储在数据库中的列名。

票数 2
EN

Stack Overflow用户

发布于 2012-05-18 07:32:24

代码语言:javascript
复制
$sql = mysql_query('
SELECT *
FROM albums
JOIN songs
ON albums.performer=songs.performer
WHERE albums.albumID="'.$albumID.'"');
票数 3
EN

Stack Overflow用户

发布于 2012-05-18 07:47:05

你也应该意识到,仅仅在传递的变量上使用isset()是模棱两可的,你应该进行特异性检查,并始终知道传递的是什么类型的值;

如果您希望仅允许整数、数字或两者的混合:

if(isset($_GET['id']))只是检查它的集合,这也可能是一个空值。

if(!empty($_GET['id']))检查它的集合,并且也有一个值

if(!empty($_GET['id']) && is_numeric($_GET['id']))上面的所有内容,并且是数字。

这个故事的寓意是,你永远不应该相信用户输入的类型是正确的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10644835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档