簡體   English   中英

如何使用MYSQL數據創建“排序依據”下拉列表

[英]How to make a “Sort By” dropdown list with MYSQL data

大家好,我已經堅持了一段時間,確實需要幫助。 我確信這很容易做到,但我只是沒有以正確的方式看到它。

我所擁有的是一個名為“ company_list.php”的頁面,在此頁面上,我在公司表中顯示所有公司。 我想要做的是有一個下拉選擇表單,用於對我的結果進行排序。 目前,我只是試圖按類別進行排序。

表公司:companyID categoryID companyName等...

表類別:categoryID categoryName

**FORM**
    <form action="company_list.php" method="POST" >
<label>Category: </label>
<select name="categoryID">
<?php foreach ($categorys as $category) : ?>
<option value="<?php echo $category['categoryID']; ?>">
<?php echo $category['categoryName']; ?>
</option>
<?php endforeach; ?>
</select>
<input type="submit" value="Sort" />

PHP這是我被困住的地方,嘗試了許多不同的事情,請幫助!!

    //include db here
//global
global $db;
if(isset($_POST['categoryID']) === " '.$categoryID.' ") {
$query='SELECT *
FROM company
WHERE categoryID ="'.$categoryID.'"
$db->query($query);
}
//get data
//get all cats
$query='SELECT * FROM category
ORDER BY categoryID';
$categorys=$db->query($query);
//Get all COMPANYS for cat
$query='SELECT * FROM company WHERE categoryID = "'.$categoryID.'"
ORDER BY companyName ASC';
$category_companys=$db->query($query);

我在這里碰壁,真的很想幫忙。 提前致謝。

我能夠完成與此類似的操作,但未在下拉列表中完成。 以下是我已經完成的工作,但idk如何將其放入下拉菜單。

的PHP

    global $db;
if(!isset($categoryID)) {
@$categoryID = $_GET['categoryID'];
if(!isset($categoryID)){
$categoryID=2; //I want to start by displaying companys for all categorys...not at categoryID=2
}
}
//get name of all categorys
$query='SELECT * FROM category
WHERE categoryID = "'.$categoryID.'"';
$category_results=$db->query($query);
$category_row = $category_results->fetch();
$categoryName = $category_row['categoryName'];
//get all cats
$query='SELECT * FROM category
ORDER BY categoryID';
$categorys=$db->query($query);
//Get all COMPANYS for cat
$query='SELECT * FROM company WHERE categoryID = "'.$categoryID.'"
ORDER BY companyName ASC';
$category_companys=$db->query($query);

的HTML

    <!--lists all category`s in <li> not a drop down form -->
<?php foreach($categorys as $category) : ?>
<li>
<a href="company_list.php?categoryID=<?php echo $category['categoryID']; ?>" >
<?php echo $category['categoryName']; ?>
</a>
</li>
<?php endforeach; ?>
<!--Result Set-->
<table border="1px solid black" cellspacing="1px" cellpadding="2px;" style="margin-top:5px;">
<!--<h1>Company Name</h1>-->
<th>Company Name</th>
<th>Address</th>
<th>Phone</th>
<th>Email</th>
<?php foreach($category_companys as $company) : ?>
<tr>
<td><a href="company_page.php?company_id=<?php echo $company['companyID']; ?>">
<?php echo $company['companyName']; ?></a>
</td>
<td>
<?php echo $company['companyAddress']; ?>
</td>
<td>
<?php echo $company['companyPhone']; ?>
</td>
<td>
<?php echo $company['companyEmail']; ?>
</td>
</tr>
<?php endforeach; ?>
</table>

您的php語法非常糟糕:

if(isset($_POST['categoryID']) === " '.$categoryID.' ") {
                                    ^^^^^^^^^^^^^^^^^^

正在嘗試將發布的值與具有空格,單引號,句點,$ categoryID變量的值,另一個句點,另一個引號,另一個空格的字符串進行比較。

您是否想要:

if(isset($_POST['categoryID']) === $categoryID) {

代替? 請注意,這很可能仍會失敗。 $ _GET / $ _ POST / $ _ REQUEST超全局變量中出現的任何內容均為STRING 如果$ categoryID是整數,則比較將失敗,因為類型不匹配-即使值相同。

PS格式正確(例如,縮進)的PS是您的朋友。 不要害怕標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM