2015-04-25 6 views
0

Я делаю форму, которая представляет историю в таблицу MySQL, называемую «работа». Я хочу позже взять идентификатор вновь созданной записи и поместить информацию в другую таблицу.Отправка информации из вновь созданной записи в другую таблицу 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

Вы никогда сделал $db->query() в вашей строке запроса INSERT INTO..., поэтому он не был вставлен и был перезаписан вашим запросом 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 idenfied now – Raru

0

Ваш $ workid не может быть инициализирован, в зависимости от вашего состояния и результат вашего запроса: поэтому постарайтесь избегать следующих операций, которые будут вызывает предупреждений/ошибок с помощью continue или else

+0

в этом случае он должен быть '=', как вы присваиваете результат запроса '$ db-> запрос ($ запроса))' в '$ result', которая затем используется в' $ result-> FETCH_ASSOC() '. – Sean

+0

Я обновил свой ответ :) спасибо @Sean –

Смежные вопросы