Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查不同列中mysql查询的最后两个条目的值是否相同?_Php_Mysql - Fatal编程技术网

Php 如何检查不同列中mysql查询的最后两个条目的值是否相同?

Php 如何检查不同列中mysql查询的最后两个条目的值是否相同?,php,mysql,Php,Mysql,我有一个这样结构的表链接 spreader | host1 | host2 | host 3 | id | datetime | --------------------------------- expl.com | 1 | 5 | 2 what.de | 1 | 5 | 2 expl.com | 1 | 2 | 3 what.de | 2 | 5 | 5 如何检查具有相同撒布器的最后2个条目在host1、host2、hos

我有一个这样结构的表链接

spreader | host1 | host2 | host 3 | id | datetime |
---------------------------------
expl.com | 1     | 5     | 2
what.de  | 1     | 5     | 2
expl.com | 1     | 2     | 3
what.de  | 2     | 5     | 5
如何检查具有相同撒布器的最后2个条目在host1、host2、host3中是否具有相同的值

对于这个例子,它应该给我

  • expl.com=>host1=1
  • what.de=>host2=5
我可能知道一种方法,但我必须有10个sql查询,每个主机一个。在我只需要一个查询就可以从数据库中获取整个日期之后,您知道用php实现这一点的有效方法吗

我现在知道了,它发出了10个mysql查询,我想看看如何让它变得更好:

global $hosters;
global $filespreader_names;

foreach ( $filespreader_names as $filespreader ) {
    $feedtable = feedback_tabelle_holen(" WHERE filespreader='$filespreader' ORDER BY aktualisiert DESC LIMIT 2");
    //var_dump($feedtable);
    foreach ( $hosters as $host ) {
        if ( ( $feedtable[0][$host] == $feedtable[1][$host] ) && ( $feedtable[0][$host] != 0 ) ) {
            echo "<br />$filespreader -> $host = " . $feedtable[0][$host];
        }
    }
}
global$hosters;
全局$filespreader_名称;
foreach($filespreader_名称为$filespreader){
$feedtable=feedback_tabelle_holen(“其中filespreader='$filespreader'由aktualisiert描述的订单限制2”);
//var_转储($feedtable);
foreach($hosters作为$host){
如果($feedtable[0][$host]==$feedtable[1][$host])&($feedtable[0][$host]!=0)){
echo“
$filespreader->$host=”.$feedtable[0][$host]; } } }

我得到的全局变量只是包含我需要的所有播放机和主机名的数组

您可能可以进行内部联接以生成匹配的记录。如果您得到的gloabals来自另一个表,那么内部联接将为您提供一个记录集,其中包含您可以从那里操作的所有匹配记录,但它将只有一个查询

If this is TableA on the left and TableB on the right.

id name       id  name
-- ----       --  ----
1  Pirate     1   Rutabaga
2  Monkey     2   Pirate
3  Ninja      3   Darth Vader
4  Spaghetti  4   Ninja

SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name

That query will result in rows of the  matching data according to your query

id  name       id   name
--  ----       --   ----
1   Pirate     2    Pirate
3   Ninja      4    Ninja
我不知道这是否有帮助,但我不太清楚你的结构,也不清楚你到底想要什么。如果全局变量是会话变量,而不是存储在表中,那么这个答案可能对您没有帮助


如果要使用联接,请签出

能否以格式显示表的结构,如表名及其列?很抱歉,能否更具体一些。举个例子,你说“最后两个条目”是什么意思?你怎么知道他们是最后一个?您是否有日期时间字段或自动递增列?请记住,当您查询数据库时,没有任何东西可以保证您按照记录的存储顺序获取记录……我有id和datetime。那不是他的问题。我只是想检查一下“撒布器”(我运行的每个查询)的最后两张图是否有共同之处,然后打印出来。我想你需要一个更详细的例子。