2014-09-05 42 views
-2

我有一個sql從哪裏得到我的mysql的行,其中nummer = nummer,但我想從另一個表中獲取一些信息。一個新的sql裏面的sql

<?php 
    $Id = $_GET['Id']; 
    $nummer = $_GET['nummer']; 
    $pdo = Database::connect(); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $sql = 'SELECT Id, nummer ,start, job_art, work_id, slut FROM rum WHERE nummer = :nummer and slut = ""'; 
    $q = $pdo->prepare($sql); 
    $q->bindValue(':nummer', $Id); 
    $q->execute(); 
    $q->setFetchMode(PDO::FETCH_ASSOC);  

    ?> 

<?php while ($r = $q->fetch()): ?> 
<tr> 
<td class="line"><?php echo htmlspecialchars($r['start'])?></td> 
<td class="line"><?php echo htmlspecialchars($r['job_art'])?></td> 

在這裏,我想從我的TABEL工人得到work_id並張貼作爲行HVEM

<td class="line"><?php if ($r["slut"] == "") 
{ 
    echo '<a href="afslut_opgave.php?work_id='.$r["work_id"]. '&Id=' .$r["Id"]. '&nummer=' .$r["nummer"].'" class=bluelink> Afslut</a>'; 

    } 
    else 
    { 
    echo $row["slut"]; 
    } 
?></td> 

    </tr> 
<?php endwhile; ?> 

我tryed把一個新的SQL,但我ENDWHILE停止信息的其餘部分,我不能看到我的work_id 我該如何解決這個問題?

我的表朗姆酒看起來像這樣

標識---- ---- nummer ------ work_id job_art(表中我只有work_id(可能是畫家PA)

我的表工人看起來像這樣

標識----- work_id ------ HVEM(我想行HVEM到apear)work_id = PA是HVEM =畫家

<?php 
    $Id = $_GET['Id']; 
    $nummer = $_GET['nummer']; 
    $pdo = Database::connect(); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $sql = 'SELECT Id, nummer ,start, job_art, work_id, slut FROM rum WHERE nummer = :nummer and slut = ""'; 
    $q = $pdo->prepare($sql); 
    $q->bindValue(':nummer', $Id); 
    $q->execute(); 
    $q->setFetchMode(PDO::FETCH_ASSOC);  

    ?> 

<?php while ($r = $q->fetch()): ?> 
<tr> 
<td class="line"><?php echo htmlspecialchars($r['start'])?></td> 
    <td class="line"><?php echo htmlspecialchars($r['job_art'])?></td> 
    <?php 
     $work_d = $_GET['work_id'];  
    $pdo = Database::connect(); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $sql = 'SELECT * from rum FULL OUTER JOIN workers on work_id = work_id'; 
    $q = $pdo->query($sql); 
    $q->setFetchMode(PDO::FETCH_ASSOC);?> 

    <td class="line"> <?php echo htmlspecialchars($r['hvem'])?> 
    </td> 
    <td height="25">&nbsp;</td> 
    </tr> 
<?php endwhile; ?> 

這裏我得到一個錯誤致命錯誤:未捕獲的excepti與消息

「PDOException」這個工作:)

$sql = 'SELECT hvem from workers INNER JOIN rum on workers.work_id = rum.work_id WHERE nummer = :nummer'; 
+0

我可能會使用連接或子查詢。向我們展示涉及一些樣本數據和期望結果的表格是一個好主意。 – VMai 2014-09-05 15:45:28

+0

首先:MySQL不支持'FULL OUTER JOIN'。第二:如果工作人員中存在對應的行,則使用左連接並處理NULL值或INNER JOIN。 – VMai 2014-09-05 16:30:49

回答

0

您將需要使用一個連接,例如以下給出表:

id name  id name 
-- ----  -- ---- 
1 Pirate  2  Pirate 
2 Monkey  null null 
3 Ninja  4  Ninja 
4 Spaghetti null null 

你可以加入表下列方式:

SELECT * FROM TableA 
LEFT OUTER JOIN TableB 
ON TableA.name = TableB.name 

Left outer join produces a complete set of records from Table A, with the matching records (where available) in Table B. If there is no match, the right side will contain null.

您可以閱讀更多關於加入on this blog或檢查official documentation

+1

爲什麼要投票? – 2014-09-05 15:48:03

+0

Idont知道,但也許它,因爲你說你不確定你的例子將工作? – meda 2014-09-05 17:00:52

+0

也許,可能是鏈接,有人可能以爲我是鏈接傾銷:/ – 2014-09-05 21:28:33