【问题标题】:setting a link on a while loop php在while循环php上设置链接
【发布时间】:2018-10-13 12:41:37
【问题描述】:
$query = mysql_query("SELECT * FROM mailtbl WHERE fromuser = '$adminsess' AND sent = '1'");

echo "To Subject Date View message";

while($fetch = mysql_fetch_assoc($query)) {

    $mid = $fetch['mid'];
    $to = $fetch['touser'];
    $subject2 = $fetch['subject'];
    $message2 = $fetch['message'];
    $date2 = $fetch['datesent'];
    $rand = $fetch['rand'];
    $view = "<a href = 'messages.php?mode=".$sent."&view=".$rand."'>View message</a>";

    echo "$to$subject2$date2$view";

}

echo "</table>";

if (isset($view)) {

    $viewget = $_GET['view'];

    if ($viewget== $rand) {

        echo "hi";
        echo "$message2";

    } 
}

$view 假设打开每条消息的内容。主要问题是,如果我在表中有多个值,单击表中每一行中的链接后,唯一起作用的链接在最后一行。表中带有链接的前几行不显示消息的内容(即 echo "hi" & echo "$message2";)。 我的代码到底有什么问题?谢谢。

【问题讨论】:

  • 请修正代码的缩进,使其可读,然后突出显示问题中的所有代码并按下代码按钮 ({})。
  • 感谢您修复代码 AlienWebguy。我不知道如何在 StackOverflow 中修复代码结构。有人可以回答我的问题。谢谢。
  • @glov3 当您提出/回答问题时,文本区域的右侧和上方会出现一个带有问号的橙色大框。这是编辑器的帮助
  • 我冒昧地删除了您代码中一些过度的、不均匀的缩进。

标签: php


【解决方案1】:

显示消息的代码在while 循环之外。如果您希望它针对每条消息运行,则将其放入遍历每条消息的循环中。

【讨论】:

  • 如您所见,$message2 来自 while 循环。唯一的问题是,最后一行是显示消息的唯一值。 if (isset($view) 将在用户点击链接 ($view) 时触发。
  • 对。您需要将该代码移动到循环内。循环结束后,变量具有它们采用的最后一个值,这是在最后一行循环的最后一次迭代期间。如果您想将每条消息与$_GET['view'] 进行比较以查看是否应显示,请将代码放入循环中。
  • 我明白了!我只需要修复它,但它现在可以工作了!非常感谢先生。
  • 还有一个问题,点击链接后是否可以删除表格列表? ($view) 消息应该只显示,不能和表格一起显示
  • 是的,使用 JavaScript。在将表的 CSS display 属性更改为 none 的链接上创建一个 onclick 处理程序。
【解决方案2】:

问题是$rand 没有在isset($view) 检查中设置。 $rand 仍然包含上面 while 循环中的最后一个值,因此只有最后一个 $viewget/$rand 可以工作。

我的猜测是messages.php 会显示所有可用的消息(消息列表),如果单击一条消息,则会显示消息列表和选定的消息。

首先,在while 循环之前,您获取要显示的消息的消息标识符:

$ViewRequested = isset($_GET['view']) ? $_GET['view'] : -1;
$ViewRequestedData = NULL;

接下来,在while 循环中,检查是否允许用户查看所选消息,并记住记录:

if ($rand == $ViewRequested) {
    $ViewRequestedData = $fetch;
}

最后,在while循环之后,检查是否有一个有效的消息请求:

if (is_array($ViewRequestedData) {
    echo $ViewRequestedData['message2'];
}

【讨论】:

    猜你喜欢
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    相关资源
    最近更新 更多