1

我正在开发一些功能,其中执行了初始搜索,正在显示配置文件详细信息的子集。这工作正常。

然后有一个名为“查看完整配置文件”的链接,如果单击该链接应返回整个配置文件。

我已经使用硬编码的 id 进行了这项工作,但不确定如何从信息子集中传入配置文件的 id?

我实际上不知道该值(配置文件的 id)当前是否可供我访问,以便在有意义的情况下传递它?

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

相关代码贴在下面。

子集配置文件.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>

索引.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。这是我需要动态的值,具体取决于先前查看的配置文件子集。

感谢您的时间和帮助。

4

3 回答 3

3

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

<a href="?more&id=<?php htmlout($result['id']); ?>">View full profile</a>
于 2012-09-24T12:48:28.130 回答
1

改变

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

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

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

于 2012-09-24T12:47:37.323 回答
0

我假设 ID 也将来自 GET 参数。

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

附言。尝试抽象您的输入。切勿在您的逻辑中直接使用 $_GET、$_POST、$_COOKIE 等。

于 2012-09-24T12:52:22.780 回答