分配(下载)链接到我查询的结果

时间:2014-09-08 08:56:55

标签: php sql database hyperlink download

所以我一直在讨论这个问题已经有一段时间了,我找不到一个例子来让它适用于我自己的代码。现在我希望你们中的一些人能为我找到解决方案,或者至少指出我正确的方向。所以问题如下:

某人可以将某些文件和信息上传到数据库。上传文件(文件名)与其名称,位置等位于同一个数据库行中。例如:一个人有几个必填字段,如名称,位置和上传文件,它们共同构成数据库中的一行。这工作正常,文件正在上传到名为:uploads / participant-database的文件夹(整个名称是:mytestsite.nl:2222 / CMD_FILE_MANAGER / domain / mytestsite.nl / public_html / Recap / wp-content / uploads / parties -database)。

然而,问题是,该人还可以使用复选框搜索系统搜索数据库数据(并检索它)。根据给定的复选框选项,显示某些数据(与选择匹配)。但问题是:如何将下载链接分配给正确的数据库值?我会用下面的一些图片让它更清晰:

Picture with the displaying / retrieving of the database information

检索数据库信息的代码如下(我只使用了1个过滤器来提供查询的想法,因为否则它将是一大段代码):

if(!empty($_POST['columns_location']) && !empty($_POST['columns_theme'])) { // empty() checks if the value is set before checking if it's empty.

    // Runs mysql_real_escape_string() on every value encountered.
        $clean_criteria_location = array_map('mysql_real_escape_string', $_REQUEST['columns_location']);

        // Convert the array into a string.
        $criteria_location = implode("|",$clean_criteria_location);             

// Runs mysql_real_escape_string() on every value encountered.
        $clean_criteria_theme = array_map('mysql_real_escape_string', $_REQUEST['columns_theme']);

        // Convert the array into a string.
        $criteria_theme = implode("|",$clean_criteria_theme);               

    $tmp = $wpdb->get_results("
        SELECT
            name_of_living_lab, location_of_living_lab, type_of_living_lab, theme_of_living_lab, stage_of_living_lab, living_lab_document           
        FROM           
            wp_participants_database            
        WHERE 
            location_of_living_lab REGEXP ('$criteria_location') AND theme_of_living_lab REGEXP ('$criteria_theme') 
        ORDER BY 
            name_of_living_lab ASC
    "); 
}   

显示结果的代码如下:

echo "<table>
    <tr>";     
        echo "<th>Name of Living Lab</th>";
        echo "<th>Location of Living Lab</th>"; 
        echo "<th>Type of Living Lab</th>"; 
        echo "<th>Theme of Living Lab</th>";
        echo "<th>Stage of Living Lab</th>";    
        echo "<th>Living Lab document</th>";    
echo "</tr>";


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

            echo "<td>";

            $b=unserialize($value);

                if(is_array($b)){ 

                array_filter($b); 
                $counttwo = 0;
                    foreach($b as $y){
                    if ($counttwo++ > 1) echo ", ";
                    echo $y;
                    } 
                }

                else{
                    echo $value;
                }
            echo "</td>";                                                   
            }    
        echo "</tr>";

    }
}   
echo '</table>';

现在问题是,如何为查询结果分配正确的链接?因此,在图片示例中,您可以看到文档表(这是查询的结果),其中的文本应该可以使用该存储文档进行单击和下载。所以我想应该只检查数据库列的$ tmp结果值:文档然后应该创建链接数据库值到正确文档的链接。虽然,我完全不知道如何做到这一点(即使经过相当多的研究)。

我希望你们可以帮助我,或者给我一些指示!先感谢您!

*** *** UPDATE 新的显示代码(由于输出文本2次后无法工作)添加了@dHaRa uMaraniYa的建议:

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

            echo "<td>";

            if($key =='DOC'){ 
                    echo '<a href="'.$value.'">'.$value.'</a>';
                }

            $b=unserialize($value);

            if(is_array($b)){ 

                array_filter($b); 
                $counttwo = 0;
                    foreach($b as $y){
                    if ($counttwo++ > 1) echo ", ";
                    echo $y;
                    } 
                }


                else{
                    echo $value;
                }
            echo "</td>";                                                   
            }    
        echo "</tr>";

    }
}   
echo '</table>';

1 个答案:

答案 0 :(得分:0)

选择living_lab_document为 DOC

 $tmp = $wpdb->get_results("
            SELECT
                name_of_living_lab, location_of_living_lab, type_of_living_lab, theme_of_living_lab, stage_of_living_lab, living_lab_document as DOC
            FROM           
                wp_participants_database            
            WHERE 
                location_of_living_lab REGEXP ('$criteria_location') AND theme_of_living_lab REGEXP ('$criteria_theme') 
            ORDER BY 
                name_of_living_lab ASC
        ");

并检查是否

if($key =='DOC'){ 
  echo '<a href="'.$value.'">'.$value.'</a>';
}
else
{
echo $value;
}