Skip to content

Commit 902a37b

Browse files
committed
Update
1 parent 2f9cb2e commit 902a37b

File tree

1 file changed

+111
-20
lines changed

1 file changed

+111
-20
lines changed

README.md

Lines changed: 111 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@ $key = ['id' => 3];
140140
### **SELECT**
141141
Format untuk fungsi find/select
142142
```php
143-
$app->db->$table->find($filter, $limit, $order_by);
143+
$rows = $app->db->$table->find($filter, $limit, $order_by);
144144
```
145145
**SELECT Field**
146146
```php
147-
$app->db->$table->find([
147+
$rows = $app->db->$table->find([
148148
'select' => [
149149
['nama, email'], //** Cara Pertama
150150
['nama', 'email'], //** Cara Kedua
@@ -158,13 +158,13 @@ $app->db->$table->find([
158158
159159
**LIMIT**
160160
```php
161-
$app->db->$table->find([],[10]); //** Cara Pertama limit 10 baris
161+
$rows = $app->db->$table->find([],[10]); //** Cara Pertama limit 10 baris
162162
$app->db->$table->find([], [5, 10]); //** Cara Kedua limit dari posisi index ke 5 sebanyak 10 baris
163163
```
164164

165165
**ORDER BY**
166166
```php
167-
$app->db->$table->find([],[],[
167+
$rows = $app->db->$table->find([],[],[
168168
'asc' => ['nama', 'email'], //** Pengurutan menaik/Ascending untuk field nama dan email
169169
'desc' => ['nama', 'email'] //** Pengurutan menurun/Descending untuk field nama dan email
170170
]);
@@ -173,29 +173,29 @@ $app->db->$table->find([],[],[
173173
**WHERE**
174174
Where tanpa pengelompokan
175175
```php
176-
$app->db->$table->find([
176+
$rows = $app->db->$table->find([
177177
'where'=> [
178178
["nama = 'Dony Wahyu Isp'"], //** Cara Pertama
179179
["nama", "='Dony Wahyu Isp'"], //** Cara Kedua
180-
["nama", "=", "'Dony Wahyu Isp'"], //** Cara Ketiga
181-
["nama = '?' AND email='?'" => [$nama, $email]], //** Cara Keempat
182-
["nama", "='?' AND email='?'" => [$nama, $email]], //** Cara Kelima
180+
["nama", "=", "Dony Wahyu Isp"], //** Cara Ketiga
181+
["nama = '?' AND email = '?'" => [$nama, $email]], //** Cara Keempat
182+
["nama", "='?' AND email = '?'" => [$nama, $email]], //** Cara Kelima
183183
]
184184
]);
185185
```
186186

187187
Where dengan pengelompokan
188188
```php
189-
$app->db->$table->find([
189+
$rows = $app->db->$table->find([
190190
'where' => [
191191
'and' => [
192192
'and' => [
193-
["nama", "=", "'Dony Wahyu Isp'"],
194-
["email", "=", "'dna.extrim@gmail.com'"]
193+
["nama", "=", "Dony Wahyu Isp"],
194+
["email", "=", "dna.extrim@gmail.com"]
195195
],
196196
'or' => [
197-
["nama", "=", "'Dony Wahyu Isp'"],
198-
["email", "=", "'dna.extrim@gmail.com'"]
197+
["nama", "=", "Dony Wahyu Isp"],
198+
["email", "=", "dna.extrim@gmail.com"]
199199
]
200200
]
201201
]
@@ -204,7 +204,7 @@ $app->db->$table->find([
204204

205205
**BETWEEN**
206206
```php
207-
$app->db->$table->find([
207+
$rows = $app->db->$table->find([
208208
'where' => [
209209
["nilai", "between", [50, 100]],
210210
["nilai", "not between", [50, 100]], //** Dengan NOT
@@ -214,28 +214,98 @@ $app->db->$table->find([
214214

215215
**IN**
216216
```php
217-
$app->db->$table->find([
217+
$rows = $app->db->$table->find([
218218
'where' => [
219219
["nilai", "in", [50, 60, 70, 80]],
220220
["nilai", "not in", [50, 60, 70, 80]], //** Dengan NOT
221221
]
222222
]);
223223
```
224+
**GROUP BY**
225+
```php
226+
$rows = $app->db->$table->find([
227+
'group by'=> [
228+
['username']
229+
]
230+
]);
231+
```
224232

225233
**JOIN (Natural/Left/Right)**
226234
```php
227-
$app->db->$table->find([
235+
$rows = $app->db->$table->find([
228236
'join' => [
229237
['natural', 'table_profil'], //** Natural JOIN
230238
['left', 'table_profil', 'field_nama'], //** Left/Righ Join Cara Pertama
231-
['left', 'table_profil', [field_nama_profile, $field_nama_user]] //** Left/Right Join Cara Kedua
239+
['left', 'table_profil', ['field_nama_profile', 'field_nama_user']] //** Left/Right Join Cara Kedua
232240
]
233241
]);
234242
```
235243
> **Catatan**: Untuk sementara ini join belum support untuk penggunaan database NoSQL seperti MongoDB
236244
245+
**CALLBACK**
246+
Untuk melakukan manipulasi hasil row baik diterapkan pada seluruh field ataupun pada field tertentu saja. Parameter yang digunakan untuk callback adalah `$value` dan `$row`, `$value` merupakan nilai yang diberikan oleh field pada setiap row/baris, sedangkan `$row` merupakan data pada setiap row/baris nya.
247+
####Penerapan pada seluruh Field
248+
```php
249+
$rows = $app->db->$table->find([
250+
'callback'=> function($value, $row) {
251+
return 'Rp. '.$value;
252+
}
253+
]);
254+
```
255+
256+
####Penerapan pada Field tertentu
257+
```php
258+
$rows = $app->db->$table->find([
259+
'callback'=> [
260+
'harga' => function($value, $row) {
261+
return 'Rp. '.$value;
262+
},
263+
'password' => function($value, $row) {
264+
return '*****';
265+
},
266+
'id' => function($value, $row) {
267+
$row->action = "{\"id\":\"$value\"}";
268+
return $value;
269+
},
270+
]
271+
]);
272+
```
273+
274+
###**Fields**
275+
Untuk Mendapatkan nama field berserta dengan nama, tipe, ukuran dan nama table.
237276

238-
## Contoh penggunaan Pada Kecik Framework Versi 1.0.3
277+
**Mendapatkan field yang bersumber dari query find **
278+
```php
279+
$rows = $app->db->$table->find();
280+
$fields = $app->db->$table->fields();
281+
foreach($fields as $field) {
282+
echo 'Name: '.$field->name;
283+
echo 'Type: '.$field->type;
284+
echo 'Size: '.$field->size;
285+
echo 'Table: '.$field->table;
286+
}
287+
```
288+
289+
**Mendapatkan field dari table**
290+
```php
291+
$fields = $app->db->$table->fields();
292+
foreach($fields as $field) {
293+
echo 'Name: '.$field->name;
294+
echo 'Type: '.$field->type;
295+
echo 'Size: '.$field->size;
296+
echo 'Table: '.$field->table;
297+
}
298+
```
299+
300+
###**Num Rows**
301+
Untuk mendapatkan jumlah row/baris dari hasil find
302+
303+
```php
304+
$rows = $app->db->$table->find();
305+
$count = $app->db->$table->num_rows();
306+
```
307+
308+
## Contoh penggunaan Pada Kecik Framework Versi 1.1.*
239309
```php
240310
<?php
241311
require "vendor/autoload.php";
@@ -275,12 +345,22 @@ $ret = $db->data->delete($id);
275345
$app->get('/', function() use ($db){
276346
$rows = $db->data->find([
277347
'where' => [
278-
['nama', '=', "'Dony Wahyu Isp'"]
348+
['nama', '=', "Dony Wahyu Isp"]
349+
],
350+
'callback' => [
351+
//manipulating value of email fields
352+
'email' => function($val, $row) {
353+
return substr($val, 0, 3).str_repeat('*', strpos($val, '@')-3).substr($val, strpos($val, '@'))
354+
}
279355
]
280356
]);
281357

282358
foreach ($rows as $row) {
283359
echo 'Nama: '.$row->nama.'<br />';
360+
/*
361+
Output email for dna.extrim@gmail.com
362+
is dna*******@gmail.com
363+
*/
284364
echo 'Email: '.$row->email.'<hr />';
285365
}
286366
});
@@ -318,16 +398,27 @@ $ret = $db->data->delete($id);
318398
$app->get('/', function() use ($db){
319399
$rows = $db->data->find([
320400
'where' => [
321-
['nama', '=', "'Dony Wahyu Isp'"]
401+
['nama', '=', "Dony Wahyu Isp"]
402+
],
403+
'callback' => [
404+
//manipulating value of email fields
405+
'email' => function($val, $row) {
406+
return substr($val, 0, 3).str_repeat('*', strpos($val, '@')-3).substr($val, strpos($val, '@'))
407+
}
322408
]
323409
]);
324410

325411
foreach ($rows as $row) {
326412
echo 'Nama: '.$row->nama.'<br />';
413+
/*
414+
Output email for dna.extrim@gmail.com
415+
is dna*******@gmail.com
416+
*/
327417
echo 'Email: '.$row->email.'<hr />';
328418
}
329419
});
330420

331421
$app->run();
332422
?>
333423
```
424+

0 commit comments

Comments
 (0)