2014-09-08 2 views
0

Так что я уже некоторое время набрасываюсь на эту проблему, и я просто не могу найти пример, чтобы заставить его работать над моей собственной частью кода. Теперь я надеюсь, что у некоторых из вас есть решение для меня или, по крайней мере, указать мне в правильном направлении. Таким образом, проблема заключается в следующем:Присвоение (загрузка) ссылок на мои запрошенные результаты

Пользователь может загрузить определенные файлы и информацию в базу данных. Загрузка файлов, так что имя файла находится в той же строке базы данных, что и ее имя, местоположение и т. Д. Например, у человека есть несколько обязательных полей, таких как имя, местоположение и файл загрузки, которые вместе образуют одну строку в базе данных , Это прекрасно работает, и файлы загружаются в папку с именем: uploads/member-database (полное имя: mytestsite.nl:2222/CMD_FILE_MANAGER/domains/mytestsite.nl/public_html/Recap/wp-content/uploads/participants -база данных).

Однако проблема заключается в том, что человек также может искать данные базы данных (и извлекать их) с помощью системы поиска по меток. На основе указанных параметров флажка отображаются определенные данные (которые соответствуют выбору). Однако возникает вопрос: как я могу назначить ссылки downlaod на правильные значения базы данных? Ill сделать это немного яснее с некоторыми изображениями ниже:

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>'; 

Теперь вопрос, как же я осел закрепить правильные ссылки на запрошенные результаты? Таким образом, в примере изображения вы можете увидеть таблицу документов (которая является результатом запроса), и этот текст в ней должен быть доступен для скачивания и загружаться с помощью сохраненного документа THAT. Поэтому я думаю, что значение результата $ 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

Мое предположение: если вы var_dump ($ tmp [$ i]), вы увидите ключи и значения, вы можете добавить if с ключом $ key = 'living_lab_document' и создать a-tag? – Naruto

ответ

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; 
} 
+0

Удивительный! Большое спасибо! я проверю это правильно! На самом деле это не так сложно, но так сложно думать :) – Nicolas

+0

Я протестировал код, хотя остались две проблемы. Первый (и самый простой) заключается в том, что ссылка создана, но текст ссылки выводится 2 раза, один раз в качестве кликабельной ссылки, а второй раз - как обычный текст, например: aipa_care_living_lab _-_ information.pdfaipa_care_living_lab _-_ information.pdf, первый щелчок.Вторая проблема заключается в том, что ссылка не возвращает меня на неизвестную страницу, а затем просто запускает загрузку на той же странице (с перенаправлением в нужную папку, содержащую файл). Я добавил новый код отображения результатов в свой 1 пост. – Nicolas

+0

хорошо, неважно, вторая проблема, поскольку я разместил ее, не задумываясь. Я исправил href с помощью соответствующей ссылки. – Nicolas

Смежные вопросы