2015-04-25 45 views
0

我正在製作一個表單,將一個故事提交到一個名爲'work'的MySQL表中。我想稍後採用新創建的記錄的ID並將信息放入不同的表格中。從新創建的記錄發送信息到不同的MySQL表

但是,當我提出這個故事,它說:

$ workid是不確定的。

我看不到問題,因爲我相信我已經定義了它?

<?php 
    if (!empty($_POST) && !empty($_POST['title']) && !empty($_POST['story']) && !empty($_POST['genre']) && !empty($_POST['rating'])) { 
     $title = strip_tags($_POST['title']); 
     $story = strip_tags($_POST['story']); 
     $title = mysqli_real_escape_string($db, $title); 
     $story = mysqli_real_escape_string($db, $story); 
     $genre = $_POST['genre']; 
     $rating = $_POST['rating']; 

     $query = "SELECT COUNT(*) AS count FROM works WHERE Title = '".$title."'"; 
     $result = $db->query($query); 
     $data = $result->fetch_assoc(); 

     if ($data['count'] > 0) { 
      echo "<p>Story already exists!</p>"; 
     } else { 
      $query = "INSERT INTO works (author_id, login_id, Title, Story, Genre, Rating) VALUES ('".$userid."','".$authorid."','".$title."','".$story."','".$genre."','".$rating."')"; 

      $query = "SELECT `id` FROM `works` WHERE `Title` = '".$title."'"; 
      if ($result = $db->query($query)) { 
       while ($row = $result->fetch_assoc()) 
        $workid = $row["id"]; //workid is written here but still considered undefined 
      } 

      $query = "INSERT INTO `author_work` (`author_id`) VALUES ('".$authorid."')"; 
      $result = $db->query($query); 

      $query = "INSERT INTO `author_work` (`work_id`) VALUES ('".$workid."')"; 
      $result = $db->query($query); 

      $query = "INSERT INTO `login_work` (`work_id`) VALUES ('".$workid."')"; 
      $result = $db->query($query); 

      $query = "INSERT INTO `login_work` (`login_id`) VALUES ('".$userid."')"; 
      $result = $db->query($query);       

      if ($result) { 
       echo "<p>Story submitted!</p>"; 
      } else { 
       echo "SQL Error: " . $db->error; 
      } 
     } 
    } 
?> 

回答

0

你永遠不會導致警告/錯誤下一操作在您的INSERT INTO...查詢字符串上做了$db->query(),因此它從未插入,並且被您的SELECT id ...查詢覆蓋。

$query = "INSERT INTO works (author_id, login_id, Title, Story, Genre, Rating) VALUES ('".$userid."','".$authorid."','".$title."','".$story."','".$genre."','".$rating."')"; 

$db->query($query); // Missing this $db->query() 

$query="SELECT `id` FROM `works` WHERE `Title` = '".$title."'"; 
if ($result = $db->query($query)) { 
while ($row= $result->fetch_assoc()) 
$workid = $row["id"];} 
中它需要是`這種情況下
+0

謝謝$ workid現在已經確定 – Raru

0

你$ workid可能未初始化,根據您的病情和你的SQL查詢的結果:所以要儘量避免將通過使用continueelse

+0

='作爲要分配的查詢的結果'$ DB->查詢($查詢))''到$ result',然後將其在'$使用result-> FETCH_ASSOC()'。 – Sean

+0

我已經更新了我的回覆:)謝謝@Sean –

相關問題