Katika somo hili utakwenda kujifunz akuchakata data zaidi kw akutumia ORM kama ku join table
Hapa ni hatua za kuunda somo linalofuata kwa ajili ya kuongeza jedwali la transactions pamoja na faili la transactions.php ili kuonyesha orodha ya wateja na bidhaa walizonunua pamoja na bei zao.
Kwanza, tutahitaji kuunda jedwali jipya la transactions kwenye hifadhidata yako. Jedwali hili litakuwa na uhusiano (foreign keys) kwa jedwali la customers na products ili kurekodi bidhaa na wateja wanaohusiana.
CREATE TABLE transactions (
id INT AUTO_INCREMENT PRIMARY KEY,
customer INT NOT NULL,
product INT NOT NULL,
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (customer) REFERENCES customers(id),
FOREIGN KEY (product) REFERENCES products(id)
);
Maelezo ya Fields:
customer_id
kutoka kwenye jedwali la customers
.product_id
kutoka kwenye jedwali la products
.CURRENT_TIMESTAMP
).Sasa tutaunda faili la transactions.php
ambalo litachukua taarifa za wateja na bidhaa walizonunua pamoja na bei zao. Kwenye faili hili, tutachukua taarifa kutoka kwenye jedwali la transactions na kuonyesha orodha ya wateja na bidhaa walizonunua.
<?php
require_once 'dbclass.php';
require_once "model.php";
// Anza ORM kwa ajili ya transactions
$transactionORM = new Model('transactions');
$productORM = new Model('products');
$customerORM = new Model('customers');
$error = "";
// Pata transactions zote
$transactions = $transactionORM->all();
?>
<!DOCTYPE html>
<html lang="sw">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Orodha ya Miamala</title>
</head>
<body>
<h2>Orodha ya Miamala</h2>
<?php if (!empty($transactions)): ?>
<table border="1">
<tr>
<th>ID ya Transaction</th>
<th>Jina la Mteja</th>
<th>Jina la Bidhaa</th>
<th>Bei</th>
<th>Tarehe</th>
</tr>
<?php foreach ($transactions as $transaction): ?>
<?php
// Pata mteja na bidhaa kwa kutumia IDs
$customer = $customerORM->find($transaction['customer']);
$product = $productORM->find($transaction['product']);
?>
<tr>
<td><?= htmlspecialchars($transaction['id']); ?></td>
<td><?= htmlspecialchars($customer['name']); ?></td>
<td><?= htmlspecialchars($product['name']); ?></td>
<td><?= htmlspecialchars($product['price']); ?></td>
<td><?= htmlspecialchars($transaction['created']); ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php else: ?>
<p>Hakuna miamala iliyorekodiwa.</p>
<?php endif; ?>
</body>
</html>
ORM kwa Transactions, Customers, na Products: Tumetumia ORM kwa transactions
, customers
, na products
ili tupate taarifa za wateja na bidhaa zinazohusiana na transaction.
Pata Miamala: Tunachukua taarifa zote za miamala kutoka kwenye jedwali la transactions kwa kutumia $transactionORM->all()
.
Pata Mteja na Bidhaa kwa ID: Kwa kila transaction, tunatumia IDs za mteja na bidhaa ili kupata majina yao kutoka kwenye jedwali la customers na products.
Onyesha Orodha ya Miamala: Tunatengeneza meza ili kuonyesha ID ya Transaction, Jina la Mteja, Jina la Bidhaa, Bei ya Bidhaa, na Tarehe ya Transaction.
Ujumbe wa Makosa: Ikiwa hakuna miamala iliyorekodiwa, itaonyesha ujumbe wa "Hakuna miamala iliyorekodiwa."
Hakikisha kuwa unatumia foreign keys ili kuunganisha jedwali la transactions na ya products na customers kwa kutumia IDs. Hii itahakikisha kuwa data ya miamala ni sahihi na ina uhusiano na bidhaa na wateja waliopo kwenye hifadhidata yako.
Katika sehemu ya kuongeza miamala, tunaweza kutoa fomu ya kuongeza miamala, ambapo mteja atachagua bidhaa na itarekodiwa kwenye jedwali la transactions.
<?php
// Kushughulikia fomu ya kuongeza transaction
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST['action']) && $_POST['action'] === 'create') {
$customer_id = $_POST['customer_id'];
$product_id = $_POST['product_id'];
if (!empty($customer_id) && !empty($product_id)) {
$data = [
'customer' => $customer_id,
'product' => $product_id
];
if ($transactionORM->create($data)) {
header("Location: transactions.php");
exit();
} else {
$error = "Imeshindikana kuongeza transaction.";
}
} else {
$error = "Tafadhali chagua mteja na bidhaa.";
}
}
">
...
Jifunze zaidi, na wasiliana nasi ukiwa na App yetu. Bofya link hapo chini kuweza kuipakua.
Download NowUmeionaje Makala hii.. ?
Katika somo hili utakwenda kujifunza jinsi ya ku generate PDF automatik kutoka kwenye php code , html, javascript na css.
Soma Zaidi...Katika soko hili takwenda kujufunza jinsi ya kutuma sms kwa kutumia PHP. Hii itasaidia kama unataka kutuma OTP yaqni Onetime password
Soma Zaidi...Katika somo hili utakwenda kujifunza jinsi ya kufanya encryption na decryption kwa kutumia PHP. hii itakusaidia kuongeza usalama kwenye taarifa za watu
Soma Zaidi...Katika somo hili utakwenda kuona namna ya kutuia if else kwenye data zilizopo kwenye database kwa kutumia PHP
Soma Zaidi...Katika somo hili utajifunza jinsi ambavyo unaweza kutengeneza blog ambayo utaweza ku upload faili na kuandika makala kwa kutumia PHP
Soma Zaidi...Katika somo hili utakwenda kujifunza jinsi ya kutuma email ambayo ina HTML, pia utajifunza kutuma email yenye picha na attachment nyinginezo kama pdf
Soma Zaidi...Katika somo hili utajifnza jinsi ya ku upload file kwenye database. Kisha utajifunza jinsi ya kulisoma faili hilo kwa kutumia php
Soma Zaidi...Katika somo hili utakwenda kujifunza kuhusu Authentication header, najinsi ya kutuma taarifa hizo na kuzisoma
Soma Zaidi...Katika somo hilibutajifunza maana ya cURL pamoja na matumini yake
Soma Zaidi...Katika somo hili utakwenda kujifundisha kuhus matumizi ya function kwenye php. Pia utajifunza jinsi ya kuandika function
Soma Zaidi...