[英]Fetch multiple rows from one table and Store to another table in php Mysql
我想从一个表中获取多行数据,并且在用户选择时,仅将选择的行存储到另一张表中。
这段代码的问题在于,表'FLIGHTS'中的数据正在从数据库中准确地获取,但是当我尝试将其存储到另一个表'bookFlight'中时,它仅存储所有列的NULL值。 需要帮助!
<?php
$username = "root";
$password = "";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db("dbtest",$dbhandle)
or die("Could not select dbtest");
session_start();
////// STORING DATA INTO TABLE 'bookFlight' ////////
if(isset($_POST['Submit']))
{
$company_name = mysql_real_escape_string($_POST['company_name']);
$flight_category= mysql_real_escape_string($_POST['flight_category']);
$rates = mysql_real_escape_string($_POST['rates']);
$qry = "INSERT INTO bookFlight"."(company_name,flight_category,rates)".
"VALUES('$company_name','$flight_category','$rates')";
$retval = mysql_query( $qry, $dbhandle );
if(! $retval ) {
die('<br><br> Could not enter data: ' . mysql_error());
}
else { echo "Entered data successfully\n"; }
}
////// FETCHING DATA FROM TABLE 'flights' ////////
$sql = "SELECT * FROM flights where type_id =
(SELECT type_id FROM tour WHERE city =
'{$_SESSION['destination_Address']}')";
$myData = mysql_query($sql,$dbhandle);
$num = mysql_num_rows($myData);
echo "<table border=1>
<tr>
<th> COMPANY NAME : </th>
<th> FLIGHT CATEGORY : </th>
<th> RATES : </th>
</tr>";
for ($i=0; $i <$num; $i++)
{
$record = mysql_fetch_array($myData,MYSQL_ASSOC);
echo "<form method=post>";
echo "<tr>";
echo "<td>" . $company_name[]= $record['company_name'] ."</td>";
echo "<td>" . $flight_category[]= $record['flight_category']."</td>";
echo "<td>" . $rates[]= $record['rates'] ." </td>";
echo "<td>" . "<input type='submit' name='Submit' value='SELECT'></td>";
echo "</tr>";
}
echo"</table>";
echo "</form>";
?>
那是因为除了用表单submit
外,您什么都不发送,这就是为什么$_POST
数组除了submit
值之外什么都没有的原因。
你需要与表单数据一起通过行ID(我假设在这种情况下,ID列),这样你可以在插入该特定行bookFlight
表。
for ($i=0; $i <$num; $i++){
$record = mysql_fetch_array($myData,MYSQL_ASSOC);
echo "<form action='?id=".$record['id']."' method='post'>";
...
}
一旦用户点击了提交按钮,就可以INSERT
数据。
if(isset($_POST['Submit'])){
$qry = "INSERT INTO bookFlight (company_name, flight_category, rates) SELECT company_name, flight_category, rates FROM flights WHERE id = '".$_GET['id']."'";
$retval = mysql_query( $qry, $dbhandle );
if(! $retval ) {
die('<br><br> Could not enter data: ' . mysql_error());
}else {
echo "Entered data successfully\n";
}
}
旁注:不要使用mysql_*
函数,从PHP 5.5开始不推荐使用它们,并在PHP 7.0中将其完全删除。 改用mysqli
或pdo
。 这就是为什么您不应该使用mysql_*
函数的原因 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.