我的网站上有以下PHP代码:
$query="SELECT lastname FROM user";
$result=mysql_query($query);
我想在我的网页上显示的字段名称是lastname
,而user
是表格本身的名称。
我网站的HTML正文是:
Welcome <?php echo $_SESSION['$result']; ?>.
这不起作用,有人可以帮助我。
答案 0 :(得分:2)
$result
将只包含一个资源处理程序。您可以使用它来获取行:
<?php
$query = "SELECT lastname FROM user";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
?>
Welcome <?php echo $row['lastname'] ?>
答案 1 :(得分:1)
$ result是一个“资源”,包含查询的结果。但是,您可能想要的是遍历所有结果(因为该查询将返回'user'中每行的姓氏)
$query="SELECT lastname FROM user";
$result=mysql_query($query);
while (($row = mysql_fetch_array($result)) !== FALSE) {
echo "The lastname for this row is " . $row['lastname'] . "<br />";
}
您还应该查看mysql_fetch_assoc
答案 2 :(得分:1)
这里缺少一些东西:
查询从表中选择所有lastname
,而不只是一个。您可能需要这样的查询(假设$ _SESSION ['username']是您存储用户名的地方):
$query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";";
代码实际上并未获取结果集。它只是运行查询。您需要运行mysql_fetch_assoc()来获取结果集的第一行:
$row = mysql_fetch_assoc($result);
您永远不会设置$_SESSION['$result']
。你应该像这样设置一个变量:
$_SESSION['lastname'] = $row['lastname'];
并如此回应:
Welcome <?php echo $_SESSION['lastname']; ?>.
全部放在一起:
<?php
$query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";";
$result=mysql_query($query);
$row = mysql_fetch_assoc($result);
$_SESSION['lastname'] = $row['lastname'];
?>
<html>
<head>
<title>My page</title>
</head>
<body>
Welcome <?php echo $_SESSION['lastname']; ?>.
</body>
</html>
答案 3 :(得分:0)
你会这样做:
<?php
$query = "SELECT lastname FROM user";
$result = mysql_query($query);
$row = mysql_fetch_assoc($query);
?>
Welcome <?php echo $row['lastname']; ?>.
数组$row
将包含所选行的所有值。
答案 4 :(得分:0)
mysql_query将返回一个资源,因此直接显示它不是正确的做法。 你可以更好地使用:
while($row=mysql_fetch_array($result))
{
//echo the relevant fields.
echo(row[0]);
}
您还可以使用print_r方法转储整个资源。 如果代码中存在其他错误,请使用echo(mysql_error())。 您还应该阅读php网站上的mysql_query文档,因为它已被大量使用。