重新编号表或通过页面发布链接到两个文件


Renumber Table or Post through Page links to two files

我有两个文件。一个主文件和一个详细文件。详细信息文件嵌入在主文件中,允许用户滚动详细信息文件中的记录。

我需要能够将相同的变量发布到两个文件,并希望通过我的分页代码设置的页面链接做到这一点。

分页代码中典型的一行是

    $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $padd1 . '&jrny='.$jrny.'&Subject='.$Subject.'&pn2='.$padd1.'&arc='.$sess.'&Table_Id='.$Table_Id.'">' . $add1 . '</a> &nbsp;';

我想这样做:

    $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' .  $padd1 .   '&jrny='.$jrny.'&Subject='.$Subject.'&pn2='.$padd1.'&arc='.$sess.'&Table_Id='.$T able_Id.'">' . $add1 . '</a> .<a href="' . details_file.php . '?pn=' . $padd1 .  '&jrny='.$jrny.'&Subject='.$Subject.'&pn2='.$padd1.'&arc='.$sess.'&Table_Id='.$T able_Id.'">' . $add1 . '</a> &nbsp;';

点击页面链接将同时发布到嵌入的url和主文件url。我实际上可能只需要将两个变量$jrny和$sess发送到主文件,并将所有变量发送到details_file。

这能做到吗?

为之前的提问方式道歉。

我有一个关于如何使用任何2个不相关的表的连接的想法…

我们可以在查询中"动态地"给每个表一个id…并使用这些id来连接表,所以…最终得到一个要显示的表,使用limit进行分页等等…

例如

…使用这些表:

CREATE TABLE `table1` (
    `field1`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `field2`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL 
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
BEGIN;
INSERT INTO `table1` VALUES ('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e'), 
                            ('f', 'f'), ('g', 'g'), ('h', 'h'), ('i', 'i'), ('j', 'j'), 
                            ('k', 'k'), ('l', 'l'), ('m', 'm'), ('n', 'n'), ('o', 'o'), 
                            ('p', 'p'), ('q', 'q'), ('r', 'r');
COMMIT;

CREATE TABLE `table2` (
    `field3`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `field4`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL 
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
BEGIN;
INSERT INTO `table2` VALUES ('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e'), 
                            ('f', 'f'), ('g', 'g'), ('h', 'h'), ('i', 'i'), ('j', 'j'), 
                            ('k', 'k'), ('l', 'l'), ('m', 'm'), ('n', 'n'), ('o', 'o'), 
                            ('p', 'p'), ('q', 'q'), ('r', 'r'), ('s', 's'), ('t', 't'), 
                            ('u', 'u'), ('v', 'v'), ('w', 'w'), ('x', 'x'), ('yy', 'y');
COMMIT;

我们可以有一个这样的连接:

SET @a=0;
SET @b=0;
SELECT tt1.field1, tt1.field2, 
    tt2.field3, tt2.field4 FROM 
    (
        (SELECT t1.* FROM 
            (SELECT @a:=@a+1 as id, field1, field2 FROM table1) AS t1) 
         AS tt1 
         INNER JOIN 
        (SELECT t2.* FROM 
            (SELECT @b:=@b+1 as id, field3, field4 FROM table2) AS t2) 
         AS tt2 
         ON tt1.id=tt2.id
    );

所以你有结果在一个单一的记录集玩。

你唯一需要关心的是…要知道哪个表有更多的行,从而决定您是需要LEFT还是RIGHT OUTER JOIN