2012-11-06 58 views
2

背景信息: 我正在嘗試創建一個數字作業提升系統。管理員提出一份工作表並從「tblclient」表中提取客戶,填寫工作細節,然後將工作表分配給員工用戶。將MySQL表中的數據連接到1個表中使用PHP代碼

這樣說,我很難從客戶端表和用戶表中拉出數據,然後將它們鏈接到作業表中的一行。我是PHP編程新手,不確定如何編寫腳本,因此我的用戶可以選擇客戶端,並將所有客戶端詳細信息附加到作業頁上,然後對其進行編碼,以便作業頁可以在用戶之間移動。

這樣,當作業完成後,管理員可以預覽包含所有客戶詳細信息的作業單,作業詳細信息並使用屏幕上的所有信息進行打印。

是否有任何教程可以用於此過程?

說明: 我目前有一個表格,將作業數據插入作業表,我只是不知道用什麼代碼來拉入用戶/客戶端並將其鏈接到該特定作業。

感謝

<?php 
include 'core/init.php'; 
include 'include/overall/overall_header.php'; 
protect_page(); 
admin_protect(); 
$today_date = date("Y-m-d"); 

?> 

<div id="container"> 
<div id="content-container"> 
<div id="sidenav"> 
    <?php include 'include/sidenav.php'; ?> 

</div> 
<div id="content"> 

<h1>Add a new job</h1> 

<?php echo $today_date; ?> 

<?php 

if (isset($_GET['success']) && empty($_GET['success'])) { 
echo 'Job added successfully!'; 
} else { 
if (empty($_POST) === false && empty($errors) === true) { 
    $job_data = array(
     'date'     => $_POST['date'], 
     'description'   => $_POST['description'], 
     'artworkbrief'   => $_POST['artworkbrief'], 
     'extracosts'   => $_POST['extracosts'], 
     'stock1'    => $_POST['stock1'], 
     'orderno1'    => $_POST['orderno1'], 
     'ordered1'    => $_POST['ordered1'], 
     'stock2'    => $_POST['stock2'], 
     'orderno2'    => $_POST['orderno2'], 
     'ordered2'    => $_POST['ordered2'], 
     'stock3'    => $_POST['stock3'], 
     'orderno3'    => $_POST['orderno3'], 
     'ordered3'    => $_POST['ordered3'], 
     'subtotal'    => $_POST['subtotal'], 
     'extracosts1'   => $_POST['extracosts1'], 
     'total'     => $_POST['total'] 
    ); 
    raise_job($job_data); 
    header('Location: raise_job.php'); 
    exit(); 

} 
} 

?> 

<select id="clientname" name="clientname"> 
<?php 
    $pdo = new PDO('mysql:host=localhost;dbname=formation_ims', 'root',   'form8tion'); 
    #Set Error Mode to ERRMODE_EXCEPTION. 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $stmt = $pdo->prepare('Select clientname from tblclients'); 
    $stmt->execute(); 
     while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo '<option>'.$row['clientname'].'</option>'; 
    } 
?> 
</select> 

<div id="job-sheet"> 
<form action="" method="post"> 
<div class="row-3"> 
    <div class="description"> 
     <p>Description:</p> 
     <textarea type="text" name="description"></textarea> 
    </div> 
</div> 

<div class="row-4"> 
    <div class="artwork-brief"> 
     <p>Artwork Brief:</p> 
     <textarea type="text" name="artworkbrief"></textarea> 
    </div> 
</div> 

<div class="row-5"> 
    <div class="extra-costs-container"> 
     <div class="extra-costs"> 
      <p>Extra Costs:</p> 
      <textarea type="text" name="extracosts"></textarea> 
     </div> 
    </div> 
    <div class="total-container"> 
     <div class="sub-total"> 
      Sub Total: 
      <input type="text" name="subtotal"> 
     </div> 
    </div> 
    <div class="extra-num-container"> 
     <div class="extra-costs-num"> 
      Extra Costs: 
      <input type="text" name="extracosts1"> 
     </div>  
    </div> 
</div> 

<div class="row-6"> 
    <div class="stock-material-container"> 
     <div class="stock-material"> 
     <p>Stock/Material:</p> 
      <div class="stock-material-row"> 
       <div class="stock-material-col01"> 
        <input type="text" name="stock1"> 
       </div>  
       <div class="stock-material-col02"> 
        Order No.<input type="text" name="orderno1"> 
       </div>  
       <div class="stock-material-col03"> 
        Ordered:<input type="checkbox" name="ordered1"> 
       </div>  
      </div> 
      <div class="stock-material-row"> 
        <div class="stock-material-col01"> 
         <input type="text" name="stock2"> 
        </div>  
        <div class="stock-material-col02"> 
         Order No.<input type="text" name="orderno2"> 
        </div>  
        <div class="stock-material-col03"> 
         Ordered:<input type="checkbox" name="ordered2"> 
        </div> 
      </div> 
      <div class="stock-material-row"> 
      <div class="stock-material-col01"> 
       <input type="text" name="stock3"> 
      </div>  
      <div class="stock-material-col02"> 
       Order No.<input type="text" name="orderno3"> 
      </div>  
      <div class="stock-material-col03"> 
       Ordered:<input type="checkbox" name="ordered3"> 
      </div> 
     </div> 
     </div> 
    </div> 
    <div class="total-container"> 
     <div class="sub-total"> 
      Sub Total: 
      <input type="text" name="subtotal"> 
     </div> 
    </div> 
    <div class="extra-num-container"> 
     <div class="extra-costs-num"> 
      Extra Costs: 
      <input type="text" name="extracosts1"> 
     </div>  
    </div> 
</div> 
</div> 
<input type="submit" value="Submit"> 
</form> 

</div> 
</div> 
<div class="clear"></div> 

<?php include 'include/overall/overall_footer.php'; ?> 

啊,是的,我明白這是什麼代碼是做什麼,但不熟悉的語法。我得到一個錯誤: 解析錯誤:語法錯誤,意外的';'在... 我覺得你離開了一個「)」,但即使復原之後,我的下拉菜單沒有填充:

<select name='clientid'> 
<?php 
    $query="SELECT * FROM tblclients"; 
    $result=mysql_query($query) or die(mysql_error()); 

    while($row=mysql_fetch_assoc($result)){ 
     echo "<option value='".$row['Client_ID']."'>".stripslashes($row['ClientName']."  </option>"; 
    } 
?> 

`

+0

請粘貼你當前的代碼,並解釋到底什麼是不按預期工作。 – enenen

+0

@enenen我已更新。你可以看到我用div的表格來設計我的桌子。 –

回答

0

當輸入你的工作,你會希望有一個場在你的表格中包含clientid和另一個包含userid。以下是可能如何完成的一個例子。

<select name='clientid'> 
    <?php 
     $query="SELECT * FROM ClientTable"; 
     $result=mysql_query($query) or die(mysql_error()); 

     while($row=mysql_fetch_assoc($result)){ 
      echo "<option value='".$row['ClientID']."'>".stripslashes($row['ClientName']."</option>"; 
     } 
    ?> 
</select> 

然後,當你要輸出的工作與它的所有信息,當您運行查詢,你應該使用LEFT JOIN命令,例如

$query="SELECT * FROM JobTable 
    LEFT JOIN UserTable ON UserTable.UserID=JobTable.UserID 
    LEFT JOIN ClientTable ON ClientTable.ClientID=JobTable.ClientID 
    WHERE JobID='".mysql_real_escape_string($jobid)."'"; 
$result=mysql_query($query) or die(mysql_error()); 

即通過抓住適當的客戶端和用戶信息他們的ID(我希望你已經設置了自動遞增的方式)

+0

好吧,那麼我將如何填充用戶看到的下拉菜單?那麼管理員可以選擇連接到查詢的客戶端名稱?我對這方面的知識缺乏表示歉意,它已經完全將我的想法全部弄清楚了。 –

+0

@Orion我在輸入的答案中添加了更多信息。 –

+0

啊,現在你已經發布了你的代碼,我看到你正在使用PDO,一些想法可以轉移,但我可以使用mysql,如你所見。 –

相關問題