ユーザーが車をphpスクリプトに追加して、バックエンドデータベースに値を追加できるレンタカーシステムに取り組んでいます。自動インクリメントされた INT フィールドである「ID」というフィールドがあります。車を追加するたびに、値はインクリメントされた整数として自動的に追加されます。さて、実際にどのようにしたいかは異なります。たとえば、追加する車の名前が「MERCEDES」の場合、ID 値は MER001 にする必要があります。次に追加される車が VAUXHALL の場合、ID 値は VAU002 などになります。PHPの部分文字列関数を使用してメルセデスから「MER」を取得する方法は知っていますが、ループカウンターを作成して抽出した部分文字列と連結する方法はわかりません。これには、データベース テーブルの ID フィールドを VARCHAR にする必要があると思いますが、VARCHAR が自動インクリメントできるかどうかはわかりません (意味がありません)。
データベースに新しい車を追加します
登録するには、以下の詳細を入力してください
<label> Car Name
<span class="small">Enter car name</span>
</label>
<input type="text" name="CARNAME" id="CARNAME" />
<label>Fuel Type
<span class="small">Eg: Petrol</span>
</label>
<input type="text" name="FUELTYPE" id="FUELTYPE" />
<label>Transmission
<span class="small">Eg: Manuel</span>
</label>
<input type="text" name="TRANSMISSION" id="TRANSMISSION" />
<label>Engine Size
<span class="small">Eg: 2.4</span>
</label>
<input type="text" name="ENGINE_SIZE" id="ENGINE_SIZE" />
<label>Doors
<span class="small">Eg: 4</span>
</label>
<input type="text" name="DOORS" id="DOORS" />
<label>Total
<span class="small">Eg: 40</span>
</label>
<input type="text" name="TOTAL" id="TOTAL" />
<label>Available
<span class="small">Eg: 40</span>
</label>
<input type="text" name="AVAILABLE" id="AVAILABLE" />
<input type="submit" name="submit" value="Add Car">
<div class="spacer"></div>
</form>
このフォームは、次のコードを含むadding.phpに移動します:
<?php
$link = mysql_connect ("xxxxx", "xxxxx", "xxxxx");
mysql_select_db ("xxxxx");
$ID = $_POST['ID'];
$CARNAME = $_POST['CARNAME'];
$FUELTYPE = $_POST['FUELTYPE'];
$TRANSMISSION = $_POST['TRANSMISSION'];
$ENGINE_SIZE = $_POST['ENGINE_SIZE'];
$DOORS = $_POST['DOORS'];
$TOTAL = $_POST['TOTAL'];
$AVAILABLE = $_POST['AVAILABLE'];
$DATEADDED = $_POST['DATEADDED'];
$test = substr($CARNAME,0,3); //tried to use this test variable and it works to get the substring!
if($TOTAL>=$AVAILABLE)
{
$query = "insert into car (ID,CARNAME,FUELTYPE,TRANSMISSION,ENGINE_SIZE,DOORS,TOTAL,AVAILABLE,DATEADDED) values ('$_POST[ID]','$_POST[CARNAME]','$_POST[FUELTYPE]','$_POST[TRANSMISSION]','$_POST[ENGINE_SIZE]','$_POST[DOORS]','$_POST[TOTAL]','$_POST[AVAILABLE]',CURDATE())";
$result = mysql_query($query);
header("location: list_logged.php");
}
else
{
echo "<script>alert('The Total number of cars cannot be less than Available number!'); location.href='add.php';</script>";
}
mysql_close ($link);
?>
MER001、MAC002...などのようにIDに何かを投稿する方法について何か提案はありますか? 現在は、自動的に追加される自動インクリメント値に設定されています。データベースのフィールドを ID から VARCHAR に変更する必要があることはわかっていますが、次に何をすべきかわかりません。substr と php カウンターの連結に関する同様の質問を検索してみましたが、何も役に立ちませんでした。