0

私はテーブルに結合しようとしています。11の異なるブランドを手に入れ、ブランドに属するホイールを手に入れました. オプションの選択ボックスを使用して名前でブランドを選択できます。サブミュートすると、そのブランドのすべてのホイールが必要になります。

これは私が使用しているクラスです:

 <?php

include_once "connect.class.php";

class merken extends connect
{   
    private $merkenlijst;


    public function getMerken($database, $id = NULL)
    {
        $sql = "SELECT * FROM ".$database."_merken";
        if(!empty($id))
        {
            $sql .= " WHERE merk_code=:id"; 
        }
        else
        {
            $sql .= " ORDER BY merk_naam ASC";
        }
        try
        {
            $stmt = $this->db->prepare($sql);
            if(!empty($id)){ $stmt->bindParam(":id", $id, PDO::PARAM_STR); }
            $stmt->execute();
            $this->merkenlijst = $stmt->fetchAll(PDO::FETCH_OBJ);
            $stmt->closeCursor();

            return $this->merkenlijst;
        }
        catch (Exception $e)
        {
            die ( $e->getMessage() );
        }
    }


    public function __construct($dbo = NULL)
    {

        parent::__construct($dbo);
    }
}

?>

これは、データベースから情報をエコーする方法です。

                        <div class="bandwielkolom">
                        <form action="index.php?lang=nl&amp;p=<?php echo $_GET['p']; ?>#keuze" method="post">
                            <table class="bandentabel">
                                <tr>
                                    <th colspan="2">Zoek op merk<a name="wiel"></a></th>
                                </tr>
                                <tr>
                                    <td>Merk:</td>
                                    <td>
                                        <select name="wiel_merk">
                                            <option value="0">- Merk -</option>
<?php
    $merken = $merkclass->getMerken($website);
    foreach($merken as $merk)
    {
        echo "\t\t\t\t\t\t\t\t\t\t\t<option value=\"".$merk->merk_code."\"";
        if(isset($_GET['search']) && $_GET['search'] == "wiel" && isset($_GET['merk']) && $_GET['merk'] == $merk->merk_code || isset($_POST['wiel_submit']) && $_POST['wiel_merk'] == $merk->merk_code) { echo " selected=\"selected\""; }
        echo ">".$merk->merk_naam."</option>\n";
    }
?>
                                        </select>
                                    </td>
                                </tr>
                                <tr>
                                    <td>&nbsp;</td>
                                    <td><input type="submit" name="wiel_submit" value="Zoek" /></td>
                                </tr>
                                <tr>
                                    <td colspan="2">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td colspan="2">&nbsp;</td>
                                </tr>
                            </table>
                        </form>
                    </div>
                    <div class="clearboth"></div>
                    <br />
<?php
if(isset($_POST['wiel_submit']) && $_POST['wiel_submit'] == "Zoek" || isset($_GET['merk']))
{
    $merk = NULL;
    if(isset($_POST['wiel_submit']) && $_POST['wiel_submit'] == "Zoek")
    {
        $merk = $_POST['wiel_merk'];
    }
    $merken = $merkclass->getMerken($website, $merk);
        foreach($merken as $merk)
    {
?>
                    <img src="http://www.etyre.net/preview/bnet/logos/<?php echo str_replace(".png", "_150.png", $merk->merk_logo); ?>" width="150" class="logo" alt="<?php echo $merk->merk_naam; ?>"/>
                    <div id="merken">
                    <li><span class="title"><?php echo $merk->wiel_info; ?></span>
                            <a href="http://www.inter-tyre.nl/inter-tyre/images/w3/<?php echo $merk->wiel_foto; ?>" class="preview" title="Fotonummer: <?php echo $merk->wiel_foto;  ?>">
                                <img src="http://www.inter-tyre.nl/inter-tyre/images/w2/<?php echo $merk->wiel_foto; ?>" alt="Fotonummer: <?php echo $merk->wiel_foto; ?>" class="wheelImg"/>
                            </a>
                        <div class="clearboth"></div>
                    </div>
<?php
    }
?>
<?php
}
?>

この 2 つのテーブルを結合して、ブランドを選択したときにそのブランドのホイールがすべて表示されるようにするにはどうすればよいですか? そして、私の選択オプションにダブルブランドはありませんか?

ヴィーレンテーブル

merken table 誰か助けてくれませんか?

ありがとう

4

1 に答える 1

0

あなたの質問は少し不明確です.JOINのドキュメントを読むには怠惰すぎるようです.

とにかく、次の行に沿った何かが機能するはずです:

SELECT w.*,m.* FROM wielen w
LEFT JOIN merken m ON w.merk_id = m.id
WHERE m.id = $your_current_merk;

これにより、関連するブランド情報とともに、すべてのホイールのリストが表示されます。

逆の方法でブランドを再発生させたくない場合は、現在の設定で、この質問のように GROUP_CONCAT を実行する必要があります。

于 2012-07-13T09:39:05.050 に答える