【问题标题】:How do i make a custom Sort? (Order by online/offline Status)如何进行自定义排序? (按在线/离线状态排序)
【发布时间】:2013-07-15 09:42:41
【问题描述】:

我对 HTML、PHP 等还是很陌生,但我有一个基本的了解,我意识到显然有按数字/字母排序的功能。但是我真的找不到任何我想要的功能,也找不到合适的术语来找到我正在寻找的指南

基本上我有一个部落成员的自定义流页面,每个流上方是文本和图像流状态:在线/离线,当人流它会从在线改变时,此功能 100% 有效离线

然而所有的流都被混淆了,一个在线的流在页面底部或随机的地方被发现

我希望它把当前在线的流带到顶部,这可能吗?

<?php

$channelName = htmlspecialchars($_GET['channel'], ENT_QUOTES);

$clientId = '';             // Register your application and get a client ID at http://www.twitch.tv/settings?section=applications
$online = 'online.png';     // Set online image here
$offline = 'offline.png';   // Set offline image here
$json_array = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/'.strtolower($channelName).'?client_id='.$clientId), true);

if ($json_array['stream'] != NULL) {
    $channelTitle = $json_array['stream']['channel']['display_name'];
    $streamTitle = $json_array['stream']['channel']['status'];
    $currentGame = $json_array['stream']['channel']['game'];

    echo "$channelTitle is <img src='$online' alt='Online' /> playing $currentGame";
} else {
    echo "$channelName is <img src='$offline' alt='Offline' />";
}

?>

是我用来拉流状态的&

<A NAME="SADMAN"><center><font size="3" color="red"><span style="color:#FFFFFF">Konvict</span> - Sadmanwhosane - <span style="color:#CEE3F6">Stream status:</span> <img src="http://teamewix.com/stream.php?streamuser=sadmanwhosane87"></font>

我所做的一切都是为了展示它

【问题讨论】:

  • 取决于您如何获取该数据。它是否存储在数据库中?使用ORDER BY。它是否存储在 PHP 数组中?使用usort()。或者甚至是 JavaScript。
  • 好吧,现在我没有存储它或任何东西,它只是普通的 HTML,正如我在我的主要帖子中所说,我对所有这些都很陌生并且还在学习,所以我基本上只是使用标准HTM
  • 我基本上在我的 vbulletin 网站上制作了一个自定义页面,它允许 PHP/HTML,我已经制作了横幅图像功能,以在单击时显示流并在再次单击时隐藏,然后实际上只是制作代码以显示横幅并接受功能
  • i.imgur.com/PnOjXIP.png 是我目前拥有的,它的代码是一个集群......我想我可能需要完全重新编写代码,但我不确定最好的方法做到这一点 1)它显示无序流 - 我希望它将在线流带到顶部 2)它是 html/php 并内置在 vbulletin 自定义页面中

标签: php jquery html css vbulletin


【解决方案1】:

使用 JQuery 表排序器:

链接是here

【讨论】:

  • 这一切都很好,但我实际上并没有使用表格,我希望它自动将“在线”流带到顶部,而不仅仅是通过单击一个功能?
  • 感谢您的澄清,但您有指南或其他什么吗?
【解决方案2】:

所以我猜页面没有刷新?然后你使用ajax获取最新的数据,然后更新页面的详细信息。

链接到jQuery ajax(用于异步获取数据)

链接到jQuery html(用于使用新数据更新 html)

如果你很了解 php 和 jquery,那么这将是一件容易的事,并且链接会引导你。但如果你不这样做,那就是另一回事了。祝你好运!


编辑

我上面的答案是异步的,不涉及页面刷新。

您有一个包含在线和离线用户的数据库,对吗?您使用jQuery ajax 找出谁在线和离线。然后当你有数据时。您使用jQuery html 来更改页面的元素。

如果您只想在页面刷新期间根据它们的状态定位它们,那么您可以使用基本的phphtml。使用arrays。确切地说是 3 个数组。

Array1 - 所有团队

Array2 - 在线团队

Array3 - 离线团队

您只需从 Array1 获取所有在线团队并将其转移到 Array2 并将所有离线团队从 Array1 转移到 Array3。

然后首先回应 Array2 中的团队。然后 Array3 最后。 但这又是页面刷新。如果您不希望任何页面刷新,请按照我的第一个答案。


EDIT2

你的代码:

if ($json_array['stream'] != NULL) {
    $channelTitle = $json_array['stream']['channel']['display_name'];
    $streamTitle = $json_array['stream']['channel']['status'];
    $currentGame = $json_array['stream']['channel']['game'];

    echo "$channelTitle is <img src='$online' alt='Online' /> playing $currentGame";
} else {
    echo "$channelName is <img src='$offline' alt='Offline' />";
}

到此代码:

if ($json_array['stream'] != NULL) {
    $channelTitle = $json_array['stream']['channel']['display_name'];
    $streamTitle = $json_array['stream']['channel']['status'];
    $currentGame = $json_array['stream']['channel']['game'];

    array_push($OnlineTitleArray,$channelTitle);
    array_push($OnlineCurrentGameArray,$currentGame);

} else {
    array_push($OfflineArray,$channelName);
}

foreach($OnlineTitleArray as $key => $val){
    echo $val.' is <img src='.$online.' alt=\'Online\' /> playing  '.$OnlineCurrentGameArray[$key];
}

foreach($OfflineArray as $key => $val){
    echo $channelName.' is <img src='.$offline.' alt="Offline" />';
}

因此,您需要数组将数据放入使用array_push,然后使用foreach 来显示数据。希望这可以帮助。如果您觉得有帮助,请检查一下

【讨论】:

  • 您好,感谢您的尝试,但这仍然不能回答我的问题,我希望流按在线/离线状态自动排序,当一个在线/离线时,它会将其带到顶部
  • 我明白你的意思,但现在我没有使用数据库...teamewix.com/stream.php?streamuser=sadmanwhosane87我实际上只是通过 Twitch.tv API 询问 X 人是否在线,它没有拉来自我的数据库或任何东西的信息,teamewix 的人进行了 API 检查,问题是我看不到他们是如何做到的,所以我只能从他们的 stream.php 中提取在线/离线状态并将其合并到我自己的页面
  • 如何获取状态以及如何处理状态?如果你显示代码会更好。这样其他用户可以更好地帮助您。
  • @DanielStarmer 检查Edit2
  • 我的意思是你肯定帮助了我,但我仍然对如何让数据显示感到困惑,通常是为了获得我的流状态,我只是这样做 那我现在该怎么办?因为我通常会堆叠像 konvictgaming.com/status.php?channel=user1"> konvictgaming.com/status.php?channel=user2"> konvictgaming.com/status.php?channel=user3"> 这样的流
猜你喜欢
  • 2018-07-03
  • 2013-08-17
  • 2016-08-05
  • 2017-03-17
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多