Я хочу отфильтровать вывод моей таблицы из моей базы данных, например, по 'product_id'. Таким образом, отображаются только товары с одинаковым идентификатором. Я добавил раскрывающийся список в HTML, но не знаю, как связать его с моим запросом mysql.
<div class = "form-group{P1}">
<label class = "col-sm-2 control-label" for = "selectp1" value = "{P1}">P</label>
<div class = "col-sm-10">
<select id = "selectp1" name = "selectp1" required autofocus class = "form-control selectpicker unloadmsg" onchange = "showSelects();">
{POPTIONS}
</select>
</div>
private function getDatensatzQuery() {
$sql = "SELECT [....]
. 'LEFT JOIN [....];
if ($filterdata['filterfor'] == 'date') {
$sql .= "AND DATE(a.datum) = '$filterdata[datum]' ";
} else if ($filterdata['filterfor'] == 'daterange') {
$sql .= "AND a.datum BETWEEN '" . date('Y-m-d H:i:s',
$filterdata['filterrangefrom']) .
"' AND '" . date('Y-m-d H:i:s',
$filterdata['filterrangeto']) . "' ";
}
if ($filterdata['filterfor']=='produkt'){
$sql .= "AND p_id= '$filterdata[p]'";
}
$sql .= "ORDER BY $orderby " . (($orderdesc) ? 'DESC' : 'ASC');
$sql .= ($paginate) ? " LIMIT $start, $schritt" : '';
return $sql;
}
Не стесняйтесь задавать вопросы






Обновлено: удалил мой последний комментарий, вот что я закодировал с моим пониманием вашего вопроса, но я не могу помочь с фильтрами / сортировкой SQL, поскольку я никогда не использовал его
<table style = "text-align: center;">
<tr>
<th>
ID
</th>
<th>
NAME
</th>
<th>
IP
</th>
</tr>
<?php
$servername = "";
$susername = "";
$spassword = "";
$dbname = "";
$conn = mysqli_connect($servername, $susername, $spassword, $dbname); //Connect
if (!empty($_POST['option_filter'])){
$choosen_filter = $_POST['option_filter'];
//You can now create the SQL request to filter the results to display to the user depending on one of the options
if ($choosen_filter == 'filtrer_ids'){
//SQL filter per IDS
}else if ($choosen_filter == 'filtrer_names'){
//SQL filter per NAMES
}else if ($choosen_filter == 'filtrer_ips'){
//SQL filter per IPS
}
// ----------------------------------------------------------------------------------
// This is just an example to get every row of the database with all 3 variables
// You can print each row with all results just after sorting/filtering them
$sql = "SELECT id,username,ip FROM users_database";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$MYSQL_username = $row['username'];
$MYSQL_ip = $row['ip'];
$MYSQL_id = $row['id'];
$display=1; //Just to remember that you got results
//Then print the entire row with each values
print('<tr><th>'.$MYSQL_username.'/th><th>'.$MYSQL_ip.'</th><th>'.$MYSQL_id.'</th></tr>');
}
}
// ----------------------------------------------------------------------------------
}
?>
</table>
<form action = "PAGE.php" method = "POST" id = "filter">
<select name = "option_filter">
<option value = "filtrer_ids">Filter IDS</option>
<option value = "filtrer_names">Filter NAMES</option>
<option value = "filtrer_ips">Filter IPS</option>
</select>
<input type = "submit" name = "submit" value = "filter">
</from>
Я хочу добавить раскрывающиеся поля над таблицей, где я могу выбрать параметры, которые фильтруют мою таблицу. Так, как будто я должен добавить ниже sql-запрос, что если выбрано раскрывающееся поле, я должен добавить, например, «AND product_id = 1», но я не знаю, как получить ввод из раскрывающегося поля в мой php-скрипт.
Давным-давно это была моя попытка ^^ У меня сработало, но я использовал только 1 фильтр. Обратите внимание, что я использовал JQuery.
Рядом с выпадающим списком Айв добавил кнопку:
<button id = "suchen" onclick = "Suchen()" value = "Suche starten" class = "btn btn-secondary">Suche starten</button>
Он вызывает мою функцию поиска с именем «Suchen ()» (функция JS).
function Suchen() {
var eingrenzung1 = $("#filter :selected").text();
var eingrenzung2 = $("#filter2 :selected").text();
var eingrenzung3 = $("#filter3 :selected").text();
var eingrenzung4 = $("#filter4 :selected").text();
//Just an idea, otherwise the if-Check would be false
if (eingrenzung2 == ""){
var eingrenzung2 = "%"
}
if (eingrenzung3 == ""){
var eingrenzung3 = "%"
}
if (eingrenzung4 == ""){
var eingrenzung4 = "%"
}
Ajax('#tabelle', 'http://localhost/.../ajax/Tabelle.php?eingrenzung1='+eingrenzung1+'&eingrenzung2='+eingrenzung2+'&eingrenzung3='+eingrenzung3+'&eingrenzung4='+eingrenzung4;
}
Он отправляет данные в таблицу (я поместил таблицу в дополнительный документ) и активирует проверку в этом документе.
if (isset($_GET['eingrenzung1']) AND isset($_GET['eingrenzung2']) AND isset($_GET['eingrenzung3']) AND isset($_GET['eingrenzung4'])) {
$kopf1->Sucher($_GET['eingrenzung1'], $_GET['eingrenzung2'], $_GET['eingrenzung3'], $_GET['eingrenzung4']);
$result2 = $kopf1->alleDaten;
$anzahl = $kopf1->anzahl;
}
$ kopf1 - это объект, не знаете, используете ли вы ООП ?, и класс-функция Сучера:
public function Sucher($eingrenzung1,$eingrenzung2,$eingrenzung3,$eingrenzung4){
$query = "SELECT * FROM table WHERE Column1 LIKE '$eingrenzung1%' AND Column2 LIKE '$eingrenzung2%' AND Column3 LIKE '$eingrenzung3%' AND Column4 LIKE '$eingrenzung4%'";
$this->Ausfuehren($query);
$this->alleDaten = $this->query->fetchAll(PDO::FETCH_BOTH);
$this->anzahl = $this->query->rowCount();
return $this->alleDaten;
}
И затем я повторяю результаты в таблице (в Table.php)
<?php
for($i=0;$i < $anzahl;$i++){ ?>
<tr id = "<?php echo $result2[$i][0]; ?>" name = "j">
<td class = "t1"><input type='checkbox' name='multiDelete' class = "bd"></td>
<td class = "t1" value = "<?php echo $result2[$i][0]; ?>"><?php echo $result2[$i][0]; ?></td>
<td class = "t1"><?php echo $result2[$i][1]; ?></td>
<td class = "t1"><?php echo $result2[$i][2]; ?></td>
<td class = "t1"><?php echo $result2[$i][3]; ?></td>
<td class = "t1"><?php echo $result2[$i][4]; ?></td>
<td class = "t1"><?php echo $result2[$i][5]; ?></td>
<td class = "t1"><?php echo $result2[$i][6]; ?></td>
<td class = "t1"><?php echo $result2[$i][7]; ?></td>
</tr>
<?php
}
?>
(Я знаю, это не выглядит красиво ^^)
Не знаю, поможет ли это
Обновлено: Может быть, это немного лучше подходит для вашего вопроса сейчас
доступно много учебников, попробуйте что-нибудь сделать, см. stackoverflow.com/questions/15415571/ajax-php-drop-down-list