2012-07-13 89 views
0

我試圖結合到表格。我得到了11個不同的品牌,並且我得到了屬於品牌的車輪。您可以通過選項選擇框來選擇品牌名稱,當我想要使用該品牌的車輪時,可以選擇品牌。通過merk_id加入2個表

這是我使用的類:

<?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 
} 
?> 

我怎麼可以這樣兩個表連接在一起,從而比我選擇一個品牌,它確實展示了所有擁有該品牌的車輪?在我的選擇選項中沒有雙重品牌?

wielen table

​​3210 有人可以幫我嗎?

感謝

回答

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操作,如this question

+0

我讀過它,但我沒有寫這個PHP腳本,我有點新來的PHP,所以不知道如何實現它...我也試過不同的擺脫我的雙重selectfields,但沒有工作無論是...你剛給我的代碼......我如何在剛剛發佈的類中使用它? – user1511766 2012-07-13 09:52:21