繁体   English   中英

从一个表中获取多行并将其存储到php Mysql中的另一个表中

[英]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中将其完全删除。 改用mysqlipdo 这就是为什么您不应该使用mysql_*函数的原因

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM