Здравейте,
Опитвам се да направя една търсачка, която да взима (при нужда) няколко полета от които да търси.
Има едно поле, което търси в три колони: Title, Description и Keywords. Като допълнение може да се добавят още критерии от 2-3 падащи менюта. Та в момента имам това:
При търсене в полето за title, description и keyword намира резултати. Проблема е когато търся само по upload_category и upload_program без да съм задал каквото и да е в полето за title, description и keyword ...
Би трябвало да пропусне първия IF и да отиде на ELSEIF-a, но не го прави и изкарва всичко, което има в таблицата...
+ че не съм много сигурен, чотва е правилния начин, но засега ще е така.. въпроса е да проработи.. после мога да я пооправя
Опитвам се да направя една търсачка, която да взима (при нужда) няколко полета от които да търси.
Има едно поле, което търси в три колони: Title, Description и Keywords. Като допълнение може да се добавят още критерии от 2-3 падащи менюта. Та в момента имам това:
Код:
if(isset($_POST["submit"])){
$query = "";
$tdkey = $_POST["tdkey"];
$upload_program = $_POST["upload_program"];
$upload_category = $_POST["upload_category"];
var_dump($upload_category);
if(isset($tdkey)){
$query = "SELECT * FROM document_upload WHERE upload_title LIKE '%$tdkey%' OR upload_description LIKE '%$tdkey%' OR upload_keywords LIKE '%$tdkey%'";
if(isset($upload_category)){
$query .= "AND upload_category LIKE '%$upload_category%'";
}
if(isset($upload_program)){
$query .= "AND upload_program LIKE '%$upload_program%'";
}
} else if (isset($upload_category)){
$query = "SELECT * FROM document_upload WHERE upload_category LIKE '%$upload_category%'";
if(isset($upload_program)){
$query .= "AND upload_program LIKE '%$upload_program%'";
}
} else if (isset($upload_program)){
$query = "SELECT * FROM document_upload WHERE upload_program LIKE '%$upload_program%'";
}
$stmt = $pdo->prepare($query);
//$stmt->bindValue(":search_title", "%" . $tdkey . "%");
//$stmt->bindValue(":search_description", "%" . $tdkey . "%");
//$stmt->bindValue(":search_keywords", "%" . $tdkey . "%");
//$stmt->bindValue(":search_category", "%" . $upload_category . "%");
//$stmt->bindValue(":search_program", "%" . $upload_program . "%");
$stmt->execute();
$result = $stmt->fetchAll();
if ($stmt->rowCount() > 0) {
echo '
<table class="table table-bordered table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Description</th>
<th>Keywords</th>
<th>Category</th>
<th>Program</th>
</tr>
</thead>';
foreach( $result as $row ) {
echo '
<tbody>
<tr>
<td>'.$row['upload_title'].'</td>
<td>'.$row['upload_description'].'</td>
<td>'.$row['upload_keywords'].'</td>
<td>'.$row['upload_category'].'</td>
<td>'.$row['upload_program'].'</td>
</tr>
</tbody>';
}
echo ' </table>';
}
}
Би трябвало да пропусне първия IF и да отиде на ELSEIF-a, но не го прави и изкарва всичко, което има в таблицата...
+ че не съм много сигурен, чотва е правилния начин, но засега ще е така.. въпроса е да проработи.. после мога да я пооправя