2015-04-23 72 views
0

這發出「customers.id」到另一個php文件:插入數據到另一個連接表

echo '<a class="btn btn-primary" href="createworkorder.php?id='.$row['id'].'">Add Workorder</a>'; 

這只是拉送來的ID日期:

$id = null; 
    if (!empty($_GET['id'])) { 
     $id = $_REQUEST['id']; 
    } 

    if (null==$id) { 
     header("Location: customers.php"); 
    } 

這看從額外工作單表格的形式提交值/和插入數據:

$id   = $POST['name']; 
     $date  = $_POST['date']; 
     $installer = $_POST['installer']; 
     $salesman = $_POST['salesman']; 
     $category = $_POST['category']; 
     $status  = $_POST['status']; 
if ($valid) { 
      $pdo = Database::connect(); 
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
      $sql = "INSERT INTO workorder (date, installer, salesman, category, status) values(?, ?, ?, ?, ?)"; 
      $q = $pdo->prepare($sql); 
      $q->execute(array($id,$date,$installer,$salesman,$category,$status)); 

      Database::disconnect(); 
      header("Location: workorders.php"); 
     } 
<form class="form-horizontal" action="createworkorder.php" method="post"> 

         <div class="control-group <?php echo !empty($dateError)?'error':'';?>"> 
         <label class="control-label">Date</label> 
         <div class="controls"> 
          <input name="date" type="text" placeholder="Date" value="<?php echo !empty($date)?$date:'';?>"> 
          <?php if (!empty($dateError)): ?> 
           <span class="help-inline"><?php echo $dateError;?></span> 
          <?php endif; ?> 
         </div> 
         </div> 
         <div class="control-group <?php echo !empty($installerError)?'error':'';?>"> 
         <label class="control-label">Installer</label> 
         <div class="controls"> 
          <input name="installer" type="text" placeholder="Installer" value="<?php echo !empty($installer)?$installer:'';?>"> 
          <?php if (!empty($installerError)): ?> 
           <span class="help-inline"><?php echo $installerError;?></span> 
          <?php endif;?> 
         </div> 
         </div> 

一些奇怪的原因,它看起來像一切執行(沒有錯誤),但沒有數據顯示在我的工作表中。這是應該發生的來自用戶的選擇

  1. 拉customers.id,並從形式存入workorder.name
  2. 拉額外的信息(日期/安裝/業務員/等),並使用所有的數據插入到工作表中。

有沒有人看到是否有什麼愚蠢的事情導致這種情況不會發生?

+0

我不明白的地方POST數據的來源。可能是顯而易見的,但我沒有在那裏連接點。請解釋。 – openwonk

+0

「id」來自一個單獨的php文件,該文件處理客戶表,將「id」作爲「名稱」插入到工作表中。我可以使用Firefox中的Web開發人員工具來查看它是從該頁面提取正確的信息,所以我認爲這個問題與我的insert語句有關? – Steven

回答

0

請不要downvote這個,如果錯了。只需在這裏打字,格式就更好。

自從我講了PHP已經有一段時間了,但是您是否插入了太多變量?

具體而言,在下面的代碼中,是否包含$id將它扔掉?如果您必須包含$id,您是否應該修改INSERT查詢以包含id的位置?

$q->execute(array($id,$date,$installer,$salesman,$category,$status));

請使用意見,讓我知道,如果它的工作原理...

+0

我包含了$ id,這樣就可以插入「name」字段,但我刪除了測試,仍然無濟於事 – Steven