こんにちは、私は PC とラップトップの修理業者で、修理、顧客、請求書に関する詳細を入力できるオフライン データベース サイトを構築したいと考えていました。私はそれを学び始めたばかりなので、sqliとphpの非常に基本的な知識を持っています.
現在、データベースに相互にリンクされていない 3 つのテーブルがあります。3 つのフォームを使用してデータを送信します。
クライアント
Id – name – surname – phone – address
修理
Id – name – surname – phone – address – unit – date – price
請求書
Id - paidstatus – date paid - name – surname – phone – address- unit – date – price
私の知識不足のため、データを3つの異なるページに表示しています
Clients.php
Repairs.php
Invoices.php
これは私にとって理想的な解決策ではありませんが、私の知識は非常に基本的なものであるため、これを行いました。たとえば、新しい修理を追加するためにフォームに移動するとき、クライアント テーブルから情報を取得し、次の詳細を使用したいと考えていました。
私が求めているのはデータベースの正規化と呼ばれるものだと思います。リンクはいくつかありますが、いくつかの質問に関する誰かの専門知識を求めています...
これは、上記のテーブルからデータを取得する現在の方法です。例を使用したため、コードがテーブルの名前または行に反映されない場合があります。
<?php
//include database connection
include 'db_connect.php';
//query all records from the database
$query = "select * from repair_jobs";
//execute the query
$result = $mysqli->query( $query );
//get number of rows returned
$num_results = $result->num_rows;
//this will link us to our add.php to create new record
if( $num_results > 0){ //it means there's already a database record
//start table
//creating our table heading
echo " <table class='table_basic'>";
echo "<thead><tr>";
echo "<th>Job #</th>";
echo "<th>Name Of Unit</th>";
echo "<th>Client</th>";
echo "<th>Estimated Value</th>";
echo "</thead></tr><tbody><tr>";
//loop to show each records
while( $row = $result->fetch_assoc() ){
//extract row
//this will make $row['firstname'] to
//just $firstname only
extract($row);
//creating new table row per record
echo "<tr>";
echo "<td width='40px'><a href='rdetails.php?id={$id}'># {$id}</a></td>";
echo "<td>{$type}</td>";
echo "<td>{$notes}</td>";
echo '<td align="center"><span class="badge badge-success">£';
include('repairest.php');
echo '</span></td>';
echo "</td>";
echo "";
}
echo "</tr></table>";//end table
}else{
//if database table is empty
echo "No records found.";
}
//disconnect from database
$result->free();
$mysqli->close();
?>
正規化を使用して情報を引き出すと、どれくらい違うでしょうか? また、誰でも簡単なチュートリアルへのリンクを投稿して、チュートリアルのソース ファイルをダウンロードできますか?
また、データを入力するためのフォームはどのように異なりますか?
アップデート
miah回答について
テーブルはどのように作成され、SQL を介して結合されますか? コメント欄のこの質問の下にリンクしたページに例が表示されますが、これに参加する方法を教えてもらえますか
1 対 1 および複数。
新しい修理を追加するとき、フォームを使用してユニット - 日付 - 価格を追加するだけだと考えるのは正しいですが、クライアントが作成されていない場合はどうなりますか? または、クライアントを最初に作成する必要がありますか?
何かのようなもの
クライアント: 古いもの (ドロップダウン) または新しいもの (ボタン) (調査できるように、この名前のコードのスニペットが必要になる場合があります)
次に、修理データを入力します。
請求書は、必要なすべての情報が修理テーブルから入手可能であり、後で生成できます。