【问题标题】:PHP basic database link helpPHP基础数据库链接帮助
【发布时间】:2011-08-31 21:56:35
【问题描述】:

我想从数据库中获取一个字段,例如。 “名称”,然后将其用作链接以显示来自数据库本身的有关该名称的更多信息 我用过-

while($re=mysql_fetch_array($result))
  {

echo"<a href=\"test.php?id=1\">{$re["name"]}'</a>'";

    }

但我希望从数据库中获取的每个“名称”条目都被分配不同的 ID,例如- 亚当身份证=1 克里斯 id=2 这样在下一页我可以获取该 ID 并相应地显示内容。 请帮忙。

【问题讨论】:

    标签: php hyperlink


    【解决方案1】:
    while ($row = mysql_fetch_assoc($result)) {
      echo "<a href=\"test.php?id={$row['id']}\">".htmlspecialchars($row['name'])."</a>\n";
    }
    

    假设您在数据库中有一个 id 列,您需要做的就是将该字段包含在 SELECT 查询的结果中,并将其与您现有的代码一起回显。

    您的数据库中应该有一个自动递增的主键,您将在下一页的SELECT 查询中使用它,您只需将其用作您的id

    如果您没有数字主键,请添加一个。如果由于某种原因您不能,请使用 name 字段作为 id 并改为选择。

    一些旁注:

    • 确保使用 htmlspecialchars() 转义 name 字段,以确保不会因用户条目而破坏输出。
    • 使用 mysql_fetch_assoc() 而不是 mysql_fetch_array() - 这是 99% 的正确做法。
    • 您的结尾 &lt;/a&gt; 周围有额外的单引号 - 我在上面的示例中删除了它们。

    【讨论】:

      【解决方案2】:

      编辑您当前的示例以保持这样的计数:

      $id = 0;
      
      while($re=mysql_fetch_array($result)) {
           $id++;
           echo"<a href=\"test.php?id={$id}\">{$re["name"]}'</a>'";
      }
      

      【讨论】:

      • 太棒了,正是我想要的!谢谢!
      【解决方案3】:

      使用名称本身作为 id 更容易,然后在下一页使用名称作为数据库查询 WHERE 子句。由于您的数据库不知道整数 id,因此您无法轻松地将其与名称匹配。

      while($re=mysql_fetch_array($result))
      {
        $name = $rs['name'];
        echo"<a href='test.php?name='" . urlencode($name) . "'>" . htmlentities($name) . "</a>";
      }
      

      在您的其他页面上...

      $name = urldecode($_GET['name']);
      $name = mysql_real_escape_string($name);
      $result = mysql_query("SELECT * FROM table WHERE name='$name');
      

      当然,这假设您的名字是独一无二的。

      【讨论】:

      • 我理解你的想法,但我不明白其中的代码部分?
      • 谢谢我试过,但它在第二页上没有显示任何东西:(
      • 在第二页,你需要填写剩下的你想做的事情。我只得到你的查询。您需要检索结果并在必要时显示它们。
      • 我这样做了 -