【问题标题】:Redirect users via PHP depending on selected Id根据所选 ID 通过 PHP 重定向用户
【发布时间】:2016-06-27 00:41:09
【问题描述】:

我已从 MySQL 表中选择数据,返回的数据如下所示:

Name    Rank    Vessel Type    Preview
John    1       ab             View
Lisa    1       cd             View
Carl    2       bd             View

正如您在上面看到的,View 应该链接到用户的个人资料,具体取决于他们的Id

现在我正在使用如下表,这是View 链接的行:

<?php echo "<td> <a href='preview.php?Id='" . $Id . ">View</a></td>"; ?>

我不知道为什么,但它重定向用户喜欢:www.etc.com/preview.php?Id= 没有提供 ID。

如果我使用类似的东西:

<?php echo "<td> <a href='preview.php?Id='" . $Id . ">View " . $Id . "</a></td>"; ?>

它返回View Id 例如View 1,这意味着$Id 变量很好。你知道出了什么问题吗?

另外我想问你重定向的方式是否正确?或者还有其他/更好的方法吗?

这是PHP

<?php
if(isset($UserID)) {    

    $users = $con->prepare("
    SELECT DISTINCT Id, 
                    CONCAT(FirstName, ' ', LastName) AS FullName, 
                    RankApplied, 
                    VesselsType 
    FROM tbl
"); 
    $users->execute();

    $users->bind_result($Id, $FName, $RankApplied, $VesselsType);


} else {
    echo "There is no User ID detected, try to refresh browser.";   
}
?>

<table>
    <tr>
        <th>Name</th>
        <th>Rank</th>       
        <th>Vessel Type</th>
        <th>Preview</th>
    </tr>
    <?php 
    while ($users->fetch()) {
    ?>
    <tr>
        <td><?php echo $FName; ?></td>
        <td><?php echo $RankApplied; ?></td>        
        <td><?php echo $VesselsType; ?></td>
        <?php echo "<td> <a href='preview.php?Id='" . $Id . ">View</a></td>"; ?> 
    </tr>
    <?php 
    } 
    ?>
</table>

【问题讨论】:

    标签: php html mysql sql redirect


    【解决方案1】:

    在包含 id 之前,您将关闭您的 href 报价,将行更改为以下内容以使其正常工作:

    <?php echo "<td> <a href='preview.php?Id=" . $Id . "'>View</a></td>"; ?>
    

    【讨论】:

      【解决方案2】:

      替换

      <?php echo "<td> <a href='preview.php?Id='" . $Id . ">View</a></td>"; ?> 
      

      <?php echo "<td> <a href='preview.php?Id=" . $Id . ">View</a></td>"; ?> 
      

      ?Id= 后面有一个',这是造成问题的原因..

      您可以直接使用而不是连接$ID

      <?php echo "<td> <a href='preview.php?Id=$Id'>View</a></td>"; ?> 
      

      docs一样

      双引号字符串将显示大量转义字符 (包括一些正则表达式),字符串中的变量将是 评估。这里重要的一点是,您可以使用花括号 隔离要评估的变量的名称。例如让我们 假设你有变量 $type 并且你要回显“The $types are” 这将寻找变量 $types。要解决这个问题,请使用 echo "The {$type}s are" 你可以把左大括号放在前面或后面 美元符号。看看字符串解析看看如何使用数组 变量之类的

      请看这个answer

      【讨论】:

      • 谢谢你,成功了。还有1个问题,在preview.php中我应该使用$_GET来捕获发送的Id吗?
      • @Infinity 这怎么可能奏效?我测试了 Lal 的代码,要么没有回显任何内容,要么生成了无效的 HTML,要么在&lt;?php echo "&lt;td&gt; &lt;a href='preview.php?Id=$Id"&gt;View&lt;/a&gt;&lt;/td&gt;"; ?&gt; 导致了解析错误。编辑:你删除了关于它工作的评论。
      • &lt;?php echo "&lt;td&gt; &lt;a href='preview.php?Id=$Id"&gt;View&lt;/a&gt;&lt;/td&gt;"; ?&gt; (parse error, unexpected '&lt;'... 应该是 &lt;?php echo "&lt;td&gt; &lt;a href='preview.php?Id=$Id'&gt;View&lt;/a&gt;&lt;/td&gt;"; ?&gt; 这里。
      • @Fred-ii- 是的,当然,那是因为Lal错过了',但这不是问题:) 我完全没有注意到它,只是利用他的想法直接使用$Id .
      • @Infinity 我修复了 Lal 的语法错误。拉尔,那个反对票不是我的。实际上,我只是赞成它;-)
      【解决方案3】:

      解决您的问题:

      <?php echo "<td> <a href='preview.php?Id=".$Id . "'>View</a></td>"; ?>
      

      您也可以在使用前定义:

      <?php $link = "preview.php?Id=$Id"; ?>
      <?php echo "<a href='$link'>View</a>"; ?>
      

      你也可以试试 HTML 中的 PHP

      <a href='<?php echo "preview.php?Id=$Id"?>'>View</a>  
      

      【讨论】:

        猜你喜欢
        • 2022-12-15
        • 1970-01-01
        • 2017-09-14
        • 2019-11-02
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多