Php 为什么不是';我的内容不能显示吗?
工作原理:点击相册将进入“album.php?id=#” 查询:Php 为什么不是';我的内容不能显示吗?,php,Php,工作原理:点击相册将进入“album.php?id=#” 查询: $sql = mysql_query( SELECT * FROM albums JOIN songs ON albums.performer=songs.performer WHERE albums.albumID='albumID' ); 我想做的是让它显示专辑和曲目列表。有人知道我应该如何解决这个问题吗?谢谢。另外,您应该知道,仅对传递的变量使用isset()是不明确的,您应该检查特殊性,并始终知道将传递什么类型的值 $s
$sql = mysql_query(
SELECT *
FROM albums
JOIN songs
ON albums.performer=songs.performer
WHERE albums.albumID='albumID'
);
我想做的是让它显示专辑和曲目列表。有人知道我应该如何解决这个问题吗?谢谢。另外,您应该知道,仅对传递的变量使用
isset()
是不明确的,您应该检查特殊性,并始终知道将传递什么类型的值
$sql = mysql_query('
SELECT *
FROM albums
JOIN songs
ON albums.performer=songs.performer
WHERE albums.albumID="'.$albumID.'"');
如果只允许整数、数字或两者的混合:
if(isset($\u GET['id'])
只检查其设置,这也可能是空值
if(!empty($\u GET['id'])
这将检查其集合,并且还有一个值
if(!empty($\u GET['id'])和&is_numeric($\u GET['id'])
这个故事的寓意是,你永远不应该相信用户输入是正确的类型。你还应该意识到,仅仅对传递的变量使用
isset()
是不明确的,你应该检查特殊性,并始终知道将传递什么类型的值
如果只允许整数、数字或两者的混合:
if(isset($\u GET['id'])
只检查其设置,这也可能是空值
if(!empty($\u GET['id'])
这将检查其集合,并且还有一个值
if(!empty($\u GET['id'])和&is_numeric($\u GET['id'])
这个故事的寓意是,您永远不应该相信用户输入是正确的类型。首先将查询放在字符串中:
$query = "SELECT * FROM albums JOIN songs ON albums.performer=songs.performer";
然后,如果存在相册,请添加到该查询:
if ( !empty( $albumID ) ) {
$query = $query . " WHERE albums.albumID = $albumID";
}
此时,我们可以继续运行查询:
$result = mysql_query( $query ) or die( mysql_error() );
我们使用mysql\u query
运行查询,并将其结果传递到$result
变量中。如果出现任何错误,例如查询中的错误,我们的程序将死亡
,最新的mysql\u error()
将打印到屏幕上
使用$result
变量,我们现在可以循环并打印结果:
while ( $row = mysql_fetch_object( $result ) ) {
echo $row->columnA
}
请注意,
columnA
是一个占位符,您应该在其中实际写入存储在数据库中的列名。首先将查询放入字符串中:
$query = "SELECT * FROM albums JOIN songs ON albums.performer=songs.performer";
然后,如果存在相册,请添加到该查询:
if ( !empty( $albumID ) ) {
$query = $query . " WHERE albums.albumID = $albumID";
}
此时,我们可以继续运行查询:
$result = mysql_query( $query ) or die( mysql_error() );
我们使用mysql\u query
运行查询,并将其结果传递到$result
变量中。如果出现任何错误,例如查询中的错误,我们的程序将死亡
,最新的mysql\u error()
将打印到屏幕上
使用$result
变量,我们现在可以循环并打印结果:
while ( $row = mysql_fetch_object( $result ) ) {
echo $row->columnA
}
请注意,
columnA
是一个占位符,您应该在其中实际写入存储在数据库中的列名。好吧,您没有提到任何问题;)嗯,你没有提到任何问题;)您的查询是否以单引号开始,并以双引号结束?@JonathanSampson oops,忘记它了您的查询是否以单引号开始,并以双引号结束?@JonathanSampson oops,忘记它了