2

背景情報: デジタル求人システムを作成しようとしています。管理者はジョブ シートを作成し、「tblclient」テーブルからクライアントを取得し、ジョブの詳細を入力してから、ジョブ シートを従業員ユーザーに割り当てます。

そうは言っても、clients テーブルと users テーブルからデータを取得して、それらを jobs テーブルの行にリンクするのは困難です。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>";
    }
?>

`

4

1 に答える 1

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によって取得されます(ちなみに、自動インクリメントを設定したことを願っています)

于 2012-11-06T12:38:51.590 に答える