【发布时间】:2013-08-26 15:18:00
【问题描述】:
您好,我是一名电脑和笔记本电脑维修人员,想建立一个离线数据库站点,我可以在其中输入有关维修、客户和发票的详细信息。 我对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();
?>
使用规范化提取信息会有什么不同?任何人都可以发布一个简单教程的链接,也许可以下载教程源文件?
另外,输入数据的表单会有什么不同?
更新
关于米娅的回答
如何通过 sql 创建和连接表?我在 cmets 字段中看到了您在此问题下链接的页面上的示例,但您能告诉我加入此的方法吗
一对一和多个。
我的想法是对的,当我添加新的维修时,我只会使用我的表格来添加 单位-日期-价格 但是如果没有创建客户端怎么办?还是必须先做客户?
类似
客户:旧的(下拉)或新的(按钮)(可能需要一个 sn-p 的代码,所以我可以做一些研究)
然后我会输入维修数据。
发票可以生成,因为所有需要的信息都可以从维修表中获得,并且
【问题讨论】:
-
这是一个开始的好地方:intro to normalization。
-
感谢您的评论和链接,我已经开始浏览了。在我的情况下,他们所说的 ISBN 表将是我的联系表。有没有办法获取源文件以便我可以在工作环境中看到它?这样我学得更好:)