1つのテーブルから複数の行データをフェッチし、ユーザ選択で、選択した行のみを別のテーブルに格納します。1つのテーブルから複数の行を取り出し、PHPの別のテーブルに保存
テーブル 'FLIGHTS'のデータはデータベースから正確にフェッチされていますが、別のテーブル 'bookFlight'に格納しようとすると、すべての列にNULL値しか格納されません。助けてください!あなたは、フォームとsubmit
以外のものを送信していない、と$_POST
配列がsubmit
値を除いて何もしています理由だからだ
<?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>";
?>
フォームから値を渡したり、投稿したりする必要があります。 –
**警告**:PHPを習得しているだけの方は、古い['mysql_query'](http://php.net/manual/en/function.mysql-query.php)インタフェースを学ばないでください。それはひどいので、PHP 7では削除されました。[PDOは学ぶのが難しくありません](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo- for database-access /)、[PHP The Right Way](http://www.phptherightway.com/)のようなガイドはベストプラクティスの説明に役立ちます。 **あなたのユーザーパラメータが[正しくエスケープされている](http://bobby-tables.com/php)か、重大な[SQLインジェクションバグ](http://bobby-tables.com/ )。 – tadman
関数呼び出しの外でクエリを定義することも、中断する必要があります。間違った文字列を引数として渡すのは簡単です。特に '$ sql1'、' $ sql2'などのようなものを扱う場合は特にそうです。クエリ文字列を関数に直接与えることで、あいまいさが完全に排除されます。 – tadman