#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 ответил на мой вопрос, что странно, я никогда не использовал его, и мой профессор никогда им не пользовался. и я написал аналогичный код, подобный этому, на другой странице и работает как шарм без него. большое вам спасибо