点击“查看完整个人资料”链接时如何传入“id”

时间:2012-09-24 12:44:36

标签: php sql

我正在开展一些已执行初始搜索的功能,正在显示配置文件详细信息的子集。这很好。

然后会有一个名为“查看完整个人资料”的链接,如果点击该链接,则会返回整个个人资料。

我使用了硬编码的ID,但我不确定如何从信息子集中传递配置文件的ID?

我实际上并不知道这个值(配置文件的ID)当前是否可供我访问,以便在有意义的情况下我可以将其传入?

在个人资料详细信息的子集中,我已经包含了一个隐藏字段,其中包含我想要传入的ID,但我不确定是否可以使用它?

相关代码发布在下方。

SUBSET-PROFILE.HTML.PHP

    <div id="Profile" class="Profile"  >

    <h1 class="margin-top">Search Results</h1>

    <?php if (isset($results)): ?>

    <?php foreach ($results as $result): ?>

    <ol class="coach-display">
    <li class="left image">
      <img src="<?php if (!empty($result['filename'])) echo('?action=view&id=' . $result['id']); else echo "/img/profile_coming_soon.jpg" ?>" width="80" height="80" />
      </li>
    <li class="listleft">First Name:</li>
    <li><?php htmlout($result['firstname']); ?></li>

    <li class="listleft">Last Name:</li>
    <li><?php htmlout($result['lastname']); ?></li>

    <li class="listleft">Constituency:</li>
    <li><?php htmlout($result['constituency']); ?></li>

    <li class="listleft">Qualifications:</li>
    <li><?php htmlout($result['qualifications']); ?></li>

    </ol>

    <input type="hidden" name="id" value="<?php htmlout($result['id']); ?>">

    <a href="?more">View full profile</a>

    <?php endforeach; ?>

    <?php endif; ?>

    </div>

的index.php

    if (isset($_GET['more']))
    {
        try
        {

        $sql = "SELECT id, firstname, lastname, area, county, constituency, qualifications, bio, monday, tuesday, wednesday, thursday, friday, saturday, sunday,
                filename, mimetype
                FROM pt
                WHERE id = 6";
        $s = $pdo->query($sql);
        }
        catch (PDOException $e)
        {
            $error = 'Error fetching pt details.' . $e->getMessage();;
            include 'profiles.html.php';
            exit();
        }

你可以在INDEX.PHP中看到我将值硬编码为6.这是我需要动态的值,取决于以前查看的配置文件子集。

感谢您的时间和帮助。

3 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,但最简单的可能是在网址中传递id:

<a href="?more&id=<?php htmlout($result['id']); ?>">View full profile</a>

答案 1 :(得分:1)

变化

<a href="?more">View full profile</a>

<a href="?more&id=<?php htmlout($result['id']); ?>">View full profile</a>

现在您可以使用$_GET['id'] ..

获取ID值

答案 2 :(得分:0)

我认为ID也来自GET param。

if (isset($_GET['more']))
    {
        try
        {

        $sql = "SELECT id, firstname, lastname, area, county, constituency, qualifications, bio, monday, tuesday, wednesday, thursday, friday, saturday, sunday,
                filename, mimetype
                FROM pt
                WHERE id = ?";
        $sth = $pdo->prepare( $sql );
        $sth->execute(array( $_GET['id'] ));
        $s= $sth->fetchAll();
        }

注意到我使用了不同的PDO功能。您需要变量绑定以避免SQL注入(或良好的过滤)。

http://php.net/manual/en/pdo.prepare.php

的更多详情

PS。尝试抽象你的输入。永远不要在你的逻辑中直接使用$ _GET,$ _POST,$ _COOKIE等。