私のデータベースには次のものがあります。
行 ID - ドライバー ID - ログ ID。
行 ID は一意で、自動インクリメントされます。私が望むのは、ログ ID がそのドライバー ID を持つ各行に対して一意であることです。
たとえば、ドライバー ID 1 で行が挿入されたとします。その行のログ ID を 1 にしたいのですが、次にドライバー ID 1 で行が挿入されたときに、ログ ID を 2 にしたいとします。
どうすればこれを達成できますか?
ところで、データベースには PHPMyAdmin を使用しています。
- - - - - - - - 編集 - - - - - - - - - - -
これは私のPHPにあるものですが、次のように書かれています:
Web ページ: 不正な整数値: 行 1 の列 'FinesCost' の ''
そして、変数をダンプしてこれを取得します: string(2) "16" string(2) "16" string(2) "16" だから、なぜそれが間違った整数値を言っているのか、なぜそれらが未定義であると言っているのか理解できません。それらは非常に明確に定義されています。
PHP エラー ログ: [19-Jul-2013 10:44:18 Europe/Minsk] PHP Notice: 未定義の変数: C:\inetpub\wwwroot\hosting\Dan\JWT\drivers-log-send.php の FinesCostPost2行 336 [19-Jul-2013 10:44:18 ヨーロッパ/ミンスク] PHP 通知: 未定義変数: TravelExpensesPo st2 in C:\inetpub\wwwroot\hosting\Dan\JWT\drivers-log-send.php 行 336
///ドライバーの銀行の詳細を銀行データベースに挿入する PHP
session_start();
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="jwtdriversbank"; // Table name
$un = "";
$usrname = "";
$usrpass = "";
$userID = "";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
if(isset ($_SESSION['usrName']))
{
$usrname = $_SESSION['usrName'];
}
else
{
echo "4";
}
//var_dump ($usrname);
if(isset ($_SESSION['usrPass']))
{
$usrpass = $_SESSION['usrPass'];
}
else
{
echo "5";
}
$sql="SELECT * FROM jwtdrivers WHERE username='$usrname' and password='$usrpass'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
$userID = $rows['id'];
//var_dump ($userID);
if($userID == "")
{
echo "3";
}
else
{
$TotalProfitPost = $TotalProfit;
$LateFeePost = $LateFee;
$FinesCostPost2 = $FinesCost;
$TravelExpensesPost2 = $TravelExpenses;
$FuelCostPost = $FuelCost;
$CargoDamagePost = $CargoDamage;
$TruckDamagePost = $TruckDamage;
var_dump ($TotalProfitPost);
var_dump($FinesCostPost2);
var_dump($TravelExpensesPost2);
$sql="INSERT INTO jwtdriversbank2 (DriverID, LogID, TotalProfit, LateFee, FinesCost, TravelExpenses, FuelCost, CargoDamage, TruckDamage) VALUES ('$userID', COALESCE((Select MAX(LogID) from jwtdriversbank2 tab2 where tab2.DriverID = '$userID'),0)+1,'$TotalProfitPost','$LateFeePost', '$FinesCostPost2' , '$TravelExpensesPost2' ,'$FuelCostPost','$CargoDamagePost','$TruckDamagePost')";
$result = mysql_query($sql);
if($result)
{
}
else
{
die(mysql_error());
}
}