Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我获取数据并将其插入表中时,查询不起作用_Php_Sql_Database - Fatal编程技术网

Php 当我获取数据并将其插入表中时,查询不起作用

Php 当我获取数据并将其插入表中时,查询不起作用,php,sql,database,Php,Sql,Database,我试图将另一个表中select语句的结果插入到另一个表中。select语句起作用,但insert语句不起作用。请帮帮我 $query="SELECT * FROM subject WHERE sub_code = '$enrol' "; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { $csubject=$row['sub_name']; $cday=$row['sub_day'];

我试图将另一个表中select语句的结果插入到另一个表中。select语句起作用,但insert语句不起作用。请帮帮我

$query="SELECT * FROM subject WHERE sub_code = '$enrol' ";
$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {
  $csubject=$row['sub_name'];
  $cday=$row['sub_day'];
  $ctime=$row['sub_time'];

  echo "<strong>". $csubject . "</strong>";
}

$query = mysql_query("INSERT INTO client (client_csub_code,client_csub_name,client_csub_day,client_csub_time) VALUES ('$enrol','$csubject','$cday','$ctime')");

header("Location:homeclient.php");
?> 
$query=“从sub_code='$enrol'的主题中选择*;
$result=mysql\u query($query);
while($row=mysql\u fetch\u数组($result)){
$csubject=$row['sub_name'];
$cday=$row['sub_day'];
$ctime=$row['sub_time'];
回显“”$csubject。””;
}
$query=mysql\u query(“插入到客户机(客户机代码、客户机名称、客户机日期、客户机时间)值(“$enrol”、“$csubject”、“$cday”、“$ctime”);
标题(“位置:homeclient.php”);
?> 

您询问了如何将这两个作为一个查询来执行

这就是为什么:

$query = mysql_query("INSERT INTO `client` ( `client_csub_code`, `client_csub_name`, `client_csub_day`, `client_csub_time` ) SELECT `sub_code`, `sub_name`, `sub_day`, `sub_time` FROM `subject` WHERE `code` = '$enrol'");

// I would also add error checking
if ( mysql_errno() )
    echo mysql_error();
$query=“从sub_code='$enrol'的主题中选择*;
$result=mysql\u query($query);
while($row=mysql\u fetch\u数组($result)){
$csubject=$row['sub_name'];
$cday=$row['sub_day'];
$ctime=$row['sub_time'];
回显“”$csubject。””;
$query=mysql\u query(“插入到客户机(客户机代码、客户机名称、客户机日期、客户机时间)值(“$enrol”、“$csubject”、“$cday”、“$ctime”);
}   
标题(“位置:homeclient.php”);
?> 

试着换成这个。当前您的查询在while之外,它只运行一次,$csubject等的值将始终是您获取结果的最后一个值。

Define“not work”。什么不起作用?在哪里?可以组合这些查询insert语句不起作用。如何组合它?将您的
mysql\u查询(…)
更改为
mysql\u查询(…)或死亡(mysql\u error())
,并查看错误。您应该将mysqli或PDO与准备好的语句一起使用,mysql\u函数已被弃用。您至少应该使用mysql\u real\u escape\u string()来帮助防止sql注入。正如marcel所说,要么使用,要么死亡,并显示您得到的错误。您想将insert查询放入循环中……真的吗?
$query="SELECT * FROM subject WHERE sub_code = '$enrol' ";
$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {
  $csubject=$row['sub_name'];
  $cday=$row['sub_day'];
  $ctime=$row['sub_time'];

  echo "<strong>". $csubject . "</strong>";
  $query = mysql_query("INSERT INTO client (client_csub_code,client_csub_name,client_csub_day,client_csub_time) VALUES ('$enrol','$csubject','$cday','$ctime')");
}   
header("Location:homeclient.php");
?>