2012-02-15 138 views
1

我有我的网站下面的PHP代码:显示MySQL查询结果的Web页

$query="SELECT lastname FROM user"; 
$result=mysql_query($query); 

我想告诉我的网页上的字段的名称是lastname,而user是的名称表本身。我的网站的

的HTML体是:

Welcome <?php echo $_SESSION['$result']; ?>. 

这不是工作,有人可以帮助我。

回答

2

$result将只包含资源处理程序。你用它来读取行:

<?php  
$query = "SELECT lastname FROM user"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
?> 
Welcome <?php echo $row['lastname'] ?> 
+0

谢谢,但它似乎并没有工作:s – Jacob 2012-02-15 23:35:57

+0

“不起作用”以什么方式?错误讯息?错误的输出?输出太多了? @sarnold欢迎,然后在它旁边没有任何东西。没有错误 – sarnold 2012-02-15 23:45:09

0

你会做:

<?php 
$query = "SELECT lastname FROM user"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($query); 
?> 
Welcome <?php echo $row['lastname']; ?>. 

数组$row将包含从选定行的所有值。

1

$ result是一个“资源”,包含查询结果。不过,你可能想要的是遍历所有的结果(因为查询将返回每一行的姓氏在“用户”)

$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

+0

+1确定实际上有回应 – DaOgre 2012-02-15 23:36:24

+0

@DaOgre我将如何回应此结果 欢迎<?PHP .......? – Jacob 2012-02-16 00:36:54

+0

听起来就像你的MySQL连接有问题。你确定你的数据库设置正确吗?试试'$ query =“SELECT * FROM user”; $ result = mysql_query($ query); $ row = mysql_fetch_assoc($ result); ' – DaOgre 2012-02-16 18:04:34

1

有几个事情在这里失踪:

  1. 查询从表中,不只是一个选择所有lastname的。你可能需要这样的查询(假设$ _SESSION [“用户名”]则是保存自己的用户名):

    $query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";"; 
    
  2. 的代码实际上不取结果集。它只是运行查询。您需要运行mysql_fetch_assoc()来获得结果集的第一行:

    $row = mysql_fetch_assoc($result); 
    
  3. 你永远设置$_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> 
+0

我输入了上面的代码,但它只是在它旁边没有任何东西 – Jacob 2012-02-15 23:44:43

+2

不要忘了$ _SESSION ['username']'可能是SQL注入攻击的一个向量。 – sarnold 2012-02-15 23:46:05

+1

@sarnold抱歉,但这是什么意思? – Jacob 2012-02-15 23:47:36

0

的mysql_query会返回一个资源,从而显示它不是正确的做法。 你就能更好地运用:

while($row=mysql_fetch_array($result)) 
{ 
//echo the relevant fields. 
    echo(row[0]); 
} 

您还可以使用print_r的方法来转储整个资源。 如果代码中存在其他错误,请使用echo(mysql_error())。 你也应该阅读php站点上的mysql_query文档,因为它被使用了很多。