извлечение данных первичного ключа из таблицы

#php #mysql

#php #mysql

Вопрос:

С помощью php я пытаюсь извлечь первичный ключ, чтобы вставить его в другую таблицу, поскольку я пытаюсь соединить две таблицы, чтобы я мог использовать их позже. Я извлекаю мусорное значение при его печати, и когда я вставляю его в таблицу usermeet, оно вставляет 0 в качестве идентификатора int, поэтому оно вставляет номер по умолчанию, я действительно все перепробовал, но здесь я в тупике.

 if(isset($_POST['submit'])){
    $names=$_POST['names'];
    $check=$_SESSION['user'];

    $queryselect="SELECT `id` FROM `meeting` WHERE `chairman` = '.$check.'";

    if($resultselect=mysqli_query($db,$queryselect)){
        $row=mysqli_fetch_array($resultselect);
        foreach($names as $user){
            $queryinsert="INSERT INTO `usermeet` (`id`, `username`) VALUES 
                ('".$row['id']."','".mysqli_real_escape_string($db, $user)."')";

            if($resultinsert=mysqli_query($db,$queryinsert)){
                 echo "<script type='text/javascript'>alert('Meeting have been created')</script>";

                 header('Location: home.php');
             }
             else{
                echo "bad";
            }
        }
    }
}
  

Комментарии:

1. зачем вам результат? пожалуйста, правильно объясните.

2. Прежде чем «разочароваться», вы прочитали документацию? Сначала проверьте документацию: http://php.net/manual/en/mysqli-result . fetch-array.php

3. @khetesh мне нужен результат, чтобы я мог связать между собой две таблицы: одна таблица собраний, в которой содержится вся информация о собрании, а другая таблица usermeet содержит всех пользователей, участвующих в собрании. я хочу взять идентификатор собрания пользователя, который создал собрание, чтобы он затем пригласил пользователей на собрание. надеюсь, теперь это понятно.

Ответ №1:

я восстанавливаю значение мусора при его печати

Как вы на самом деле это печатаете? С помощью echo или var_dump/print_r. Также вы проверили свой SELECT-Query, например, в phpMyAdmin? И я могу ошибаться, но запрос выглядит неправильно:

 $queryselect="SELECT id FROM meeting WHERE chairman = '".$check."'";
  

Вам не нужно заключать имена столбцов в кавычки. Также вы неправильно объединили переменную и строку.

Просто совет по отладке: проверяйте каждый шаг в своем коде и его возвращаемые значения. И используйте для этого var_dump /print_r, а не echo. Помните обо всех значениях, которые у вас есть в вашем коде, и проверьте, соответствуют ли они именно тому, что вы хотите, чтобы они были.

Комментарии:

1. прежде всего, спасибо за советы, и да, я использовал print_r, и он ничего не отображает, но с echo он отображает значение мусора, и на самом деле я использую подготовленные запросы из phpMyAdmin.

Ответ №2:

Сначала, пожалуйста, проверьте, что для вашего id установлено значение автоматического увеличения, затем


Попробуйте, удалив «Цитаты»

 $queryinsert="INSERT INTO `usermeet` (`id`, `username`) 
VALUES ('.$row['id'].','.mysqli_real_escape_string($db, $user).')";
  

Ответ №3:

Вам не нужно заключать имена столбцов в кавычки. Также вы неправильно объединили переменную и строку.

 $queryselect="SELECT id FROM meeting WHERE chairman = '".$check."'";
  

Согласно написанному вами коду, вы должны использовать mysqli_fetch_array с константой MYSQLI_ASSOC.

 mysqli_fetch_array($result,MYSQLI_ASSOC);
  

Комментарии:

1. MYSQLI_ASSOC ответил на мой вопрос, что странно, я никогда не использовал его, и мой профессор никогда им не пользовался. и я написал аналогичный код, подобный этому, на другой странице и работает как шарм без него. большое вам спасибо