【问题标题】:how to display data from database in html not using session如何在不使用会话的html中显示数据库中的数据
【发布时间】:2014-10-27 11:25:45
【问题描述】:

我想知道是否有一种方法可以在不使用会话的情况下在 html 中显示/显示数据库中的数据。例如,我有一个函数 SelectMember 可以从成员表中选择一个成员,然后我想显示详细信息这个成员在 html 中作为回声。有没有办法在不使用会话的情况下做到这一点?我可以使用会话来做到这一点,但我尽可能不想在这个时候使用会话。我正在谈论的功能来自我包含的单独页面html 的索引。在 html 中是我要显示详细信息的地方。任何建议表示赞赏

我尝试在 html 中调用该函数,然后我将变量放入 echo 但变量未定义

问题是如何在不使用会话的情况下解决未定义变量问题

update

function EventMember(){
    global $dbh;
    if(!empty($_POST['membername'])){
        $membername = trim($_POST['membername']);
        $stmt = $dbh->prepare("SELECT * FROM member WHERE mem_name = ?") ;

        $stmt->bindValue(1,$membername);
        $stmt->execute();
        $selected_row = $stmt->fetch(PDO::FETCH_ASSOC);
        if($selected_row){
            $_SESSION['id'] = $selected_row['mem_id'];
            $_SESSION['name'] = $selected_row['mem_name'];
            $_SESSION['age'] = $selected_row['mem_age'];
            $_SESSION['address'] = $selected_row['mem_address'];
            $_SESSION['sex'] = $selected_row['mem_sex'];

            //$memid = $selected_row['mem_id'];
            //$memname = $selected_row['mem_name'];
            //$memage = $selected_row['mem_age'];
            //$memaddress = $selected_row['mem_address'];
            //$memsex = $selected_row['mem_sex'];
            header("Location: searchresult.php");
            exit;
        }else{
            echo "No member found";
        }
    }else{
        echo "name is empty";    
    }
}   



<tr>
    <td valign="top">
        <label for="name">name</label>
    </td>
    <td valign="top">
        <input  type="text" name="name" maxlength="50" size="30" value="<?php echo $memname;?>">
    </td>

如果我在数据库端取消注释 $memname 并使用它,它将是未定义的,但如果我使用 $_SESSION['name'] 它会显示结果,那么如何解决这个问题

【问题讨论】:

  • 你提到的html是.html还是PHP页面?
  • php 或 html 是否可能,如果可能如何?
  • 先了解PHP和HTML的区别。它们有何不同和限制。它会回答你的问题。
  • 我使用 php 获取数据,然后使用 html 显示 ui 部分,我使用 html 显示所有用户界面,这就是为什么我使用 html 显示数据我想在 html 中回显数据
  • 模糊的问题...我回答了,但请参阅有关编写正确问题的帮助文档。

标签: php html session echo


【解决方案1】:

另一个更新:所以你想在不使用会话的情况下将数据发送到另一个页面......

执行此操作的最简单方法是将 header() 语句更改为包含获取参数。但是如果数据是敏感的,你就不能这样做......

header("Location: searchresult.php?name=".$selected_row['mem_name']);

然后在第二页上,只需使用echo isset($_GET['name']) ? $_GET['name'] : ""; - 但请确保清理数据。

除此之外,您尝试执行此操作的方式会变得更加复杂 - 如果上述方法不适合您,我强烈建议您采用不同的方法。

...

更新:现在提供了代码,我将其添加到我的原始答案中......

您收到未定义的错误,因为您超出了您尝试访问的变量的范围。您需要将 html 向上移动到 if 语句中。我为你做了这个,但你应该使用 echo 语句更好地格式化它。

此外,您之前在该 if 语句中有一个 header() 命令。如果您不使用 session 或其他方式,这将不起作用,以便您重定向到的页面可以访问变量的值。

if ($selected_row){

    echo '<tr>
<td valign="top">
    <label for="name">name</label>
</td>
<td valign="top">
    <input  type="text" name="name" maxlength="50" size="30" value="'.$selected_row['mem_name'].'">
</td>';

        } else {
            echo "No member found";
        }
    } else {
        echo "name is empty";    
    }
}

...

旧答案:

您无需会话即可检索数据,除非您将数据存储在会话中并调用它。

您不需要通过会话访问它,但最好将其存储在某个地方(如...会话)而不是重复查询数据库。

【讨论】:

  • 如果我不使用会话,那么变量将始终未定义,这是我想了解如何解决的问题
  • 请发布您当前的代码。如果您正在执行 mysql 查询并获取返回的数据,则该变量将不会未定义。
  • 它在 php 端它被定义但是当在 html 中它是未定义的等待更新我将发布代码
  • @I--I 我根据您对问题所做的编辑以及您发布的代码更新了我的答案。
  • 我正在检查它,先生,我会在这个问题上回复你。这是代码在 html 中,而不是在右侧的数据库中。我在上面提到这两个文件是分开的,你接受了吗考虑吗?select 语句在 crud.php 中,而 echo 在 index.php 中
【解决方案2】:

不需要使用会话来检索数据。 Session只是为了存储应用级访问的数据。

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2016-04-22
    • 2016-08-06
    • 1970-01-01
    • 2018-03-20
    • 2018-01-15
    • 2020-10-27
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多