2

背景信息:我正在尝试创建一个数字工作提升系统。管理员提出一个工作表并从“tblclient”表中拉入一个客户,填写工作的详细信息,然后将工作表分配给员工用户。

话虽如此,我很难从客户表和用户表中提取数据,然后将它们链接到作业表中的一行。我是 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 回答