为多个(128)数据库值进行(PHP)重定向功能的有效方法

尼古拉斯

目前,我正在处理一个网页,其中从数据库中提取某些数据并将其显示给用户。此信息与某些项目信息以及这些项目的主要合作伙伴有关。我想实现一个功能,用户可以在一个主要合作伙伴(链接)和链接点击将重定向该用户到另一个页面(其中所有的机构的数据库中的信息是),预定义仅用于组织搜寻条件的等于点击的潜在客户合作伙伴链接。

我找到了解决方案,但是问题是该解决方案(我将在下面进一步描述)对于多个(128)组织而言不是那么好/有效。所以问题是,您知道更好/更多吗?实现这一目标的有效解决方案。要回答这个问题,您可能还需要一些背景信息:

背景资料

在输出的数据库信息(在表中完成)中,有几个信息列/标题,例如:

  • 项目名
  • 参与的组织
  • 领导合伙人
  • 项目网站等等

数据的获取是通过简单的查询完成的,其中某些数据库列具有特定的标识符。例如,项目网站列显然是一个链接,因此在查询中它是按以下方式完成的:$ SomeQueryVar =(“ SELECT project_website as LINK FROM xxxx WHERE project_website('$ some_website')”);-只是一个简短的例子来澄清问题。

为了显示,数据被“捕获”,如下所示:

if(count($SomeQueryVar)>0){
    for($i=0;$i<count($SomeQueryVar);$i++){      
        echo "<tr>";  
        foreach($SomeQueryVar[$i] as $key=>$value){              

            echo "<td>";

            $b=unserialize($value);

            if($key =='LINK' && $value != NULL){ 
                $first = true; 
                array_filter($b); 
                foreach($b as $y){
                    echo '<a href="'.$y.'">'."Project website".'</a>';
                    $first = false;     
                    if(!$first) break;
                }                               
            } else {
                    echo $value;
            }
            echo "</td>";                                                   
        }    
        echo "</tr>";

    }
}

如您在上面的代码中看到的,某些数据库列需要其余显示。例如,链接必须是可单击的,而不仅仅是纯文本。if $ key ==捕获了这些“例外”,对于只需要常规显示(纯文本)的数据,插入的最后一个echo只是$ value。

我找到的解决方案

因此,关于该问题,我发现我可以使用项目页面上的?SomePage并使用组织页面上的此“添加的链接值”进行比较来创建重定向链接。如果链接相等,则执行特定查询。但是将代码粘贴到此处可能更容易:

为了捕获特定的主要合作伙伴,捕获”部分在我的查询中也使用了一个称为ORG的标识符(代表组织)。所以这是我捕获organizations表的代码:

if($key =='ORG' && $value != NULL){ 
    $needle = array('Brainport','Development','BRAINPORT',
                    'brainport','DEVELOPMENT','development');
    $needle2 = array('Casa','CASA', 'casa');
    if (strpos_arr($value,$needle) !== false) {                     
        echo '<a href="http://portal.e-ucare.eu/database/organisations/?a=brainport" >'.$value.'</a>';
    }

    if (strpos_arr($value,$needle2) !== false) {                        
        echo '<a href="http://portal.e-ucare.eu/database/organisations/?a=casa" >'.$value.'</a>';
    }
}

在上面的代码中,我为2个组织(brainport和casa)创建了它。对于此解决方案,我使用了一个名为strpos_arr的函数,该函数在大海捞针中搜索;)因此,在上面的代码中,我将这些针设置为数据库中必须为其创建链接的名称。因此,例如,如果数据库中存在一个带有Brainport字样的公司,则该“收集程序”将看到并显示组织,并使名称可单击。

$ needle的strpos_arr函数如下:

function strpos_arr($value, $needle) {
    if(!is_array($needle)) $needle = array($needle);
    foreach($needle as $what) {
        if(($pos = strpos($value, $what))!==false) return $pos;
    }
    return false;
}

在重定向页面的代码也将赶上某些环节,使该链接查询-所以对于brainport链接,这是http://portal.e-ucare.eu/database/organisations/?a=brainport -在第二页代码此链接被捕获是这样的:

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'portal.e-ucare.eu/database/organisations/?a=brainport') 
{

    $link_word = "Brainport";
    $tmp = $wpdb->get_results("
            SELECT
                name_of_company__organization, company_location, 
                company_website as LINK, organisation_type, 
                organisation_active_in_, organisation_scope, 
                organisation_files as DOC           
            FROM           
                wp_participants_database            
            WHERE
                name_of_company__organization REGEXP ('$link_word')
            ORDER BY 
                name_of_company__organization ASC
            ");     
}

有了这个解决方案,我可以做我想做的,但是就像我一开始所说的那样,我不仅需要两个组织,而且需要128个组织这意味着我必须在两个页面上复制捕获代码块128次!!这显然不是很有效。

那么,有没有更有效的方法来实现这一目标?抱歉,如果不清楚,但我发现很难轻易将其缩小;)

无论如何,先谢谢您!

米文·伊斯滕

您可以重写为第一部分

if($key =='ORG' && $value != NULL){ 
    $needles = array(
                'brainport'=>array('Brainport','Development','BRAINPORT','brainport','DEVELOPMENT','development'),
                'casa'=>array('Casa','CASA', 'casa')
                );
    foreach($needles AS $nkey => $needle){
        if(strpos_arr($value,$needle) !== false) {                     
            echo "<a href='http://portal.e-ucare.eu/database/organisations/?a={$nkey}' >{$value}</a>";
        }
    }
}

对于第二部分,制作一个类似于[EDIT]的数组

    $link_words = array(
                'portal.e-ucare.eu/database/organisations/?a=brainport'=>'Brainport',
                'portal.e-ucare.eu/database/organisations/?a=casa'=>'Casa',
            );

那么你可以使用

    $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if(!empty($link_words[$host])){
    $link_word = $link_words[$host];
    $tmp = $wpdb->get_results("
            SELECT
                name_of_company__organization, company_location, company_website as LINK, organisation_type, organisation_active_in_, organisation_scope, organisation_files as DOC         
            FROM           
                wp_participants_database            
            WHERE
                name_of_company__organization REGEXP ('$link_word')
            ORDER BY 
                name_of_company__organization ASC
        ");     
}               

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Htaccess使用数据库中的值进行重定向

来自分类Dev

此模式对在多个Firestore数据库之间进行通信是否有效?

来自分类Dev

有没有更有效的更新数据库值的方法?

来自分类Dev

如果数据库具有特定值,则重定向

来自分类Dev

在数据库中存储多个Excel文件的有效方法?

来自分类Dev

在Access数据库上运行多个更新查询的更有效方法?

来自分类Dev

为枢轴构建数据库的更有效方法

来自分类Dev

从数据库获取最新记录的有效方法

来自分类Dev

多次查询数据库的最有效方法

来自分类Dev

PHP:将对象用作数据库产品的有效方法

来自分类Dev

PHP:将对象用作数据库产品的有效方法

来自分类Dev

来自PHP的数据库查询没有结果,但是对phpMyAdmin进行相同的查询有效吗?

来自分类Dev

将电话联系人与MySQL数据库进行比较的有效方法是什么?(类似于WhatsApp)

来自分类Dev

将电话联系人与MySQL数据库进行比较的有效方法是什么?(类似于WhatsApp)

来自分类Dev

通过查询数据库值(例如stackoverflow.com URL)进行重定向

来自分类Dev

检查 Firebase 实时数据库节点值的相等性并更改它的最有效方法是什么?

来自分类Dev

php - 多个复选框将在数据加载有效值时进行检查

来自分类Dev

找不到ID为“:”的数据库实例。请指定一个有效的数据库实例

来自分类Dev

按列有效地对事件日志数据库进行分类

来自分类Dev

如何有效地对从数据库读取的记录进行复杂的处理

来自分类Dev

如何有效创建跨平台的1000多个条目数据库系统?

来自分类Dev

重定向到数据库表值

来自分类Dev

无法连接时合并来自不同数据库的数据的最有效方法

来自分类Dev

如何将分离的数据存储到数据库中的最有效方法

来自分类Dev

在MySQL数据库中保存数据的最有效方法是什么

来自分类Dev

缓存和访问数据库数据的有效方法?

来自分类Dev

比较两个Oracle数据库表及其有效值

来自分类Dev

有什么方法可以使此数据库锁定更有效?

来自分类Dev

PHP更新数据库字段而无需重定向

Related 相关文章

  1. 1

    Htaccess使用数据库中的值进行重定向

  2. 2

    此模式对在多个Firestore数据库之间进行通信是否有效?

  3. 3

    有没有更有效的更新数据库值的方法?

  4. 4

    如果数据库具有特定值,则重定向

  5. 5

    在数据库中存储多个Excel文件的有效方法?

  6. 6

    在Access数据库上运行多个更新查询的更有效方法?

  7. 7

    为枢轴构建数据库的更有效方法

  8. 8

    从数据库获取最新记录的有效方法

  9. 9

    多次查询数据库的最有效方法

  10. 10

    PHP:将对象用作数据库产品的有效方法

  11. 11

    PHP:将对象用作数据库产品的有效方法

  12. 12

    来自PHP的数据库查询没有结果,但是对phpMyAdmin进行相同的查询有效吗?

  13. 13

    将电话联系人与MySQL数据库进行比较的有效方法是什么?(类似于WhatsApp)

  14. 14

    将电话联系人与MySQL数据库进行比较的有效方法是什么?(类似于WhatsApp)

  15. 15

    通过查询数据库值(例如stackoverflow.com URL)进行重定向

  16. 16

    检查 Firebase 实时数据库节点值的相等性并更改它的最有效方法是什么?

  17. 17

    php - 多个复选框将在数据加载有效值时进行检查

  18. 18

    找不到ID为“:”的数据库实例。请指定一个有效的数据库实例

  19. 19

    按列有效地对事件日志数据库进行分类

  20. 20

    如何有效地对从数据库读取的记录进行复杂的处理

  21. 21

    如何有效创建跨平台的1000多个条目数据库系统?

  22. 22

    重定向到数据库表值

  23. 23

    无法连接时合并来自不同数据库的数据的最有效方法

  24. 24

    如何将分离的数据存储到数据库中的最有效方法

  25. 25

    在MySQL数据库中保存数据的最有效方法是什么

  26. 26

    缓存和访问数据库数据的有效方法?

  27. 27

    比较两个Oracle数据库表及其有效值

  28. 28

    有什么方法可以使此数据库锁定更有效?

  29. 29

    PHP更新数据库字段而无需重定向

热门标签

归档