从表中检索主键数据

时间:2016-10-22 10:55:38

标签: php mysql

使用php,我正在尝试检索主键,因此我可以将其插入另一个表中,因为我正在尝试连接两个表,以便稍后可以使用它们。我在打印时检索垃圾值,当我将其插入usermeet表时,它插入0,因为id为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";
            }
        }
    }
}

3 个答案:

答案 0 :(得分:0)

  

打印时我正在检索垃圾值

你是如何实际打印的?使用echo或var_dump / print_r。你也检查了你的SELECT-Query,例如在phpMyAdmin中?我可能错了,但查询看起来并不正确:

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

您不能用引号括起列名。你也没有正确地组合变量和字符串。

只是调试提示:检查代码中的每一步及其返回值。并使用var_dump / print_r,而不是echo。请注意代码中的所有值,并检查它们是否与您希望的完全相同。

答案 1 :(得分:0)

首先,请检查您的id是否设置为自动增量

尝试删除“报价单”

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

答案 2 :(得分:0)

您不必用引号括起列名。你也没有正确地组合变量和字符串。

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

根据你编写的代码,你必须使用mysqli_fetch_array和MYSQLI_ASSOC常量。

mysqli_fetch_array($result,MYSQLI_ASSOC);