0

やあみんな、私はしばらくこれで立ち往生しており、これについて本当に助けが必要です. 簡単にできると確信しているところまで来ていますが、正しい方法で見ていないだけです。

私が持っているのは「company_list.php」というページで、このページでは会社テーブルのすべての会社を表示しています。私がやりたいことは、結果を並べ替えるためのドロップダウン選択フォームを用意することです。現時点では、カテゴリ別に並べ替えようとしています。

table company: companyID カテゴリID companyName など...

テーブル カテゴリ: カテゴリ ID カテゴリ名

**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);

私はここで壁にぶつかったので、助けてもらいたいです。前もって感謝します。

これと同様のことを達成できましたが、ドロップダウンリストではできませんでした。以下は私がやったことですが、それをドロップダウンに入れる方法はわかりません。

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>
4

1 に答える 1

0

あなたのphp構文はかなり悪いです:

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

投稿された値を、スペース、一重引用符、ピリオド、$categoryID 変数の値、別のピリオド、別の引用符、別のスペースを含む文字列と比較しようとしています。

あなたはおそらく欲しかったですか:

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

代わりは?これはまだ失敗する可能性が高いことに注意してください。$_GET/$_POST/$_REQUEST スーパーグローバルから出てくるものはすべてSTRINGです。$categoryID が整数の場合、値が同じであっても型が一致しないため、比較は失敗します。

PS が適切にフォーマットされた (例: インデントされた) コードはあなたの味方です。タブを恐れないでください。

于 2012-11-01T15:39:49.503 に答える