所以我一直在讨论这个问题已经有一段时间了,我找不到一个例子来让它适用于我自己的代码。现在我希望你们中的一些人能为我找到解决方案,或者至少指出我正确的方向。所以问题如下:
某人可以将某些文件和信息上传到数据库。上传文件(文件名)与其名称,位置等位于同一个数据库行中。例如:一个人有几个必填字段,如名称,位置和上传文件,它们共同构成数据库中的一行。这工作正常,文件正在上传到名为: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>';
答案 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;
}