Yii Dropdown Dependent Controller
public function actionFilterjurusan()
{
$data=Jurusan::model()->findAll('id_tingkatan=:id_tingkatan',array(':id_tingkatan'=>$_POST['id_tingkatan']));
$data=CHtml::listData($data,'id_jurusan','jurusan');
echo '<option value="">Pilih Jurusan</option>';
foreach($data as $value=>$name)
{
echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);
}
}
public function actionFilterkelas()
{
$data=Kelas::model()->findAll('id_jurusan=:id_jurusan',array(':id_jurusan'=>$_POST['id_jurusan']));
$data=CHtml::listData($data,'kelas','kelas');
echo '<option value="">Pilih Kelas</option>';
foreach($data as $value=>$name)
{
echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);
}
}
public function actionFiltersiswa()
{
$data=Siswa::model()->findAll('kelas=:kelas',array(':kelas'=>$_POST['kelas']));
$data=CHtml::listData($data,'nisn','nama');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);
}
}
public function actionAutocomplete()
{
//$id = Yii::app()->session['idsatker'] and id_satuan_kerja = $id ;
if (isset($_GET['term'])) {
$qtxt =" SELECT * from siswa where nama LIKE :data ";
$command =Yii::app()->db->createCommand($qtxt);
$command->bindValue(":data",'%'.$_GET['term'].'%', PDO::PARAM_STR);
$res =$command->queryAll();
}
$arr = array();
foreach($res as $r)
{
$arr[] = array(
'label'=>$r['nama'].'-'.$r['kelas'], // label for dropdown list
'value'=>$r['nama'], // value for input field
'id'=>$r['nisn'],
// return value from autocomplete
);
}
echo CJSON::encode($arr);
}
Yii Dropdown Dependent
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'keterangan-form',
'enableAjaxValidation'=>false,
)); ?>
<br><div class="col-lg-12">
<div class="card">
<div class="card-close">
<div class="dropdown">
<button type="button" id="closeCard2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="dropdown-toggle"><i class="fa fa-ellipsis-v"></i></button>
<div aria-labelledby="closeCard2" class="dropdown-menu dropdown-menu-right has-shadow"><a href="#" class="dropdown-item remove"> <i class="fa fa-times"></i>Close</a><a href="#" class="dropdown-item edit"> <i class="fa fa-gear"></i>Edit</a></div>
</div>
</div>
<div class="card-header d-flex align-items-center">
<h3 class="h4">Input Presensi ( Izin/Sakit )</h3>
</div>
<div class="card-body">
<form class="form-horizontal">
<div class="form-group row">
<label class="col-sm-2 form-control-label">Tingkatan</label>
<div class="col-sm-7">
<?php
$htmlOptions = array('class' => 'form-control');
echo CHtml::dropDownList('tingkatan','',
CHtml::listData(Tingkatan::model()->findAll(),'id_tingkatan','tingkatan'),
array(
'prompt'=>'Pilih Tingkatan', //
'value'=>'0',
'class'=>'form-control-sm',
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('filterjurusan'), // panggi filter kabupaten di controller
'update'=>'#jurusan', //selector to update
'data'=>array('id_tingkatan'=>'js:this.value'),
)
),array('empty' => '(Select a category', 'class'=>'form-control')
);
?>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Jurusan</label>
<div class="col-sm-7">
<?php
echo CHtml::dropDownList('jurusan','',
CHtml::listData(Jurusan::model()->findAll(),'id_jurusan','jurusan'),
array(
'prompt'=>'Pilih Jurusan', //
'value'=>'0',
'class'=>'form-control-sm',
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('filterkelas'), // panggi filter kabupaten di controller
'update'=>'#kelas', //selector to update
'data'=>array('id_jurusan'=>'js:this.value'),
))
); ?>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Kelas</label>
<div class="col-sm-7">
<?php
echo CHtml::dropDownList('kelas','',
CHtml::listData(Kelas::model()->findAll(),'kelas','kelas'),
array(
'prompt'=>'Pilih Kelas', //
'value'=>'0',
'class'=>'form-control-sm',
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('filtersiswa'), // panggi filter kabupaten di controller
'update'=>'#Keterangan_nisn', //selector to update
'data'=>array('kelas'=>'js:this.value'),
))
); ?>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Nama</label>
<div class="col-sm-7">
<?php echo $form->dropDownList($model,'nisn',array(),array('class'=>'form-control-sm','prompt'=>'Pilih Dulu','value'=>'0')) ?>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Status Presensi</label>
<div class="col-sm-7">
<input id="radioCustom1" type="radio" checked="" value="izin" name="status" class="radio-template">
<label for="checkboxCustom1">Izin </label>    
<input id="radioCustom1" type="radio" value="sakit" name="status" class="radio-template">
<label for="radioCustom1">Sakit</label>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Keterangan</label>
<div class="col-sm-7">
<input id="inputHorizontalWarning" type="password" placeholder="Pasword" class="form-control form-control-warning"><small class="form-text">Example help text that remains unchanged.</small>
</div>
</div>
<div class="form-group row">
<div class="col-sm-9 offset-sm-3">
<input type="submit" value="Signin" class="btn btn-primary">
</div>
</div>
</form>
</div>
</div>
</div>
<?php $this->endWidget(); ?>
Import Excel ke PHP
public function actionCreate()
{
$database = 'karyawan'; //nama database
$user = 'user'; //nama user db
$pass = 'passwordnya'; //pass db
$host = 'localhost';
$conn = mysqli_connect($host,$user,$pass,$database);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
exit();
}
include"PHPExcel.php";
$random = "file_upload_".date('Y-m-d-H-i-s').rand(11111,99999);
$target_file = Yii::app()->basePath.'/../upload/'.$random.basename($_FILES["file_excel"]["name"]);
$uploadOk = 1;
if (move_uploaded_file($_FILES["file_excel"]["tmp_name"], $target_file)) {
ini_set('memory_limit', '-1');
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$inputFileType = 'Excel2007';
$sheetIndex = 0;
$inputFileName = $target_file;
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$sheetnames = $objReader->listWorksheetNames($inputFileName);
$objReader->setLoadSheetsOnly($sheetnames[$sheetIndex]);
try {
$objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
die('Error loading file :' . $e->getMessage());
}
$worksheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$numRows = count($worksheet);
//baca untuk setiap baris excel
$no = 1 ;
for ($i=2; $i <= $numRows ; $i++) {
$worksheet[$i]['E'] = str_replace("'"," ",$worksheet[$i]['E']);
$worksheet[$i]['A'] = str_replace("'"," ",$worksheet[$i]['A']);
$worksheet[$i]['F'] = str_replace("'"," ",$worksheet[$i]['F']);
$worksheet[$i]['B'] = str_replace("'"," ",$worksheet[$i]['B']);
$worksheet[$i]['Y'] = str_replace("'"," ",$worksheet[$i]['Y']);
$worksheet[$i]['T'] = str_replace("'"," ",$worksheet[$i]['T']);
$worksheet[$i]['V'] = str_replace("'"," ",$worksheet[$i]['V']);
$worksheet[$i]['H'] = str_replace("'"," ",$worksheet[$i]['H']);
$worksheet[$i]['E'] = strtoupper($worksheet[$i]['E']);
$worksheet[$i]['A'] = strtoupper($worksheet[$i]['A']);
if ($worksheet[$i]['E'] != '') {
$sql = "INSERT INTO tabel (kolom1,kolom2,kolom3,kolom4,kolom5,kolom6,kolom7,kolom8,kolom9)
VALUES ('".$worksheet[$i]['E']."','".$worksheet[$i]['A']."','".$worksheet[$i]['F']."','".$worksheet[$i]['B']."','".$worksheet[$i]['Y']."','".$worksheet[$i]['T']."','".$worksheet[$i]['T']."','".$worksheet[$i]['V']."','".$worksheet[$i]['H']."')";
if (mysqli_query($conn, $sql)) {
$pesan= "Sukses Simpan Data!";
} else {
Yii::app()->user->setFlash('sukses', 'File Gagal Diupload ');
$this->redirect(array('master/index'));
}
}
$no++;
}
Yii::app()->user->setFlash('sukses', 'Input Data Siswa Berhasil ');
$this->redirect(array('master/index'));
} else {
Yii::app()->user->setFlash('sukses', 'File Gagal Diupload ');
$this->redirect(array('master/upload'));
}
}
Rekap Nilai Rapor Jibas
select `tahunajaran`.`tahunajaran` AS `tahunajaran`, `semester`.`semester` AS `semester`, `siswa`.`nis` AS `nis`, `siswa`.`nama` AS `siswa`, `pelajaran`.`nama` AS `mapel`, `dasarpenilaian`.`keterangan` AS `keterangan`, `nap`.`nilaiangka` AS `nilaiangka`, `nap`.`nilaihuruf` AS `nilaihuruf`, `nap`.`komentar` AS `komentar` from (((((((((`nap` join `infonap` on ((`nap`.`idinfo` = `infonap`.`replid`))) join `aturannhb` on ((`nap`.`idaturan` = `aturannhb`.`replid`))) join `pelajaran` on ((`aturannhb`.`idpelajaran` = `pelajaran`.`replid`))) join `semester` on ((`infonap`.`idsemester` = `semester`.`replid`))) join `kelas` on ((`infonap`.`idkelas` = `kelas`.`replid`))) join `tahunajaran` on ((`kelas`.`idtahunajaran` = `tahunajaran`.`replid`))) join `jenisujian` on ((`aturannhb`.`idjenisujian` = `jenisujian`.`replid`))) join `dasarpenilaian` on ((`aturannhb`.`dasarpenilaian` = `dasarpenilaian`.`dasarpenilaian`))) join `siswa` on ((`nap`.`nis` = `siswa`.`nis`))) where ((`siswa`.`nis` like '%') and (not ((`nap`.`komentar` like '')))) order by `siswa`.`nis`, `infonap`.`idkelas`, `infonap`.`idsemester`, `pelajaran`.`nama`
Menghitung Jumlah Baris di PHP
$sum = 0;
while($row=mysql_fetch_array($result)){
$id = $row['id'];
$score = $row['score'];
$sum += (int)$score;
}
echo $sum;
Memantau Kinerja Server

Memantau Kinerja Server dengan Aplikasi X-Prober
https://github.com/kmvan/x-prober
Cara redirect ke https
Untuk redirect http ke https tambahkan baris dibawah ini kedalam file .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Mengubah Baris Ke Kolom di Mysql
select
`tabel1`.`nip` AS `nip`,
date_format(`tabel1`.`tgl`, '%d-%m-%Y') AS `tanggal`,
year (`tabel1`.`tgl`) AS `tahun`,
(case
when (month (`tabel1`.`tgl`) < 4) then 'p1'
when (month (`tabel1`.`tgl`) < 7) then 'p2'
when (month (`tabel1`.`tgl`) < 10) then 'p3'
when (month (`tabel1`.`tgl`) < 13) then 'p4'
end) AS `periode`,
max((case
when (`tabel1`.`no` = 1) then `tabel1`.`nilai`
end)) AS `s1`,
max((case
when (`tabel1`.`no` = 2) then `tabel1`.`nilai`
end)) AS `s2`,
max((case
when (`tabel1`.`no` = 3) then `tabel1`.`nilai`
end)) AS `s3`,
max((case
when (`tabel1`.`no` = 4) then `tabel1`.`nilai`
end)) AS `s4`,
max((case
when (`tabel1`.`no` = 5) then `tabel1`.`nilai`
end)) AS `s5`,
max((case
when (`tabel1`.`no` = 6) then `tabel1`.`nilai`
end)) AS `s6`,
max((case
when (`tabel1`.`no` = 7) then `tabel1`.`nilai`
end)) AS `s7`,
max((case
when (`tabel1`.`no` = 8) then `tabel1`.`nilai`
end)) AS `s8`,
max((case
when (`tabel1`.`no` = 9) then `tabel1`.`nilai`
end)) AS `s9`,
max((case
when (`tabel1`.`no` = 12) then `tabel1`.`nilai`
end)) AS `s10`,
max((case
when (`tabel1`.`no` = 13) then `tabel1`.`nilai`
end)) AS `s11`,
max((case
when (`tabel1`.`no` = 13) then `tabel1`.`nilai`
end)) AS `s12`
from
`tabel1`
group by
`tabel1`.`nip`,
date_format(`tabel1`.`tgl`, '%d%m%Y')
order by
`tabel1`.`tgl`
Pivot tabel yang lebih detail bisa ke link ini https://jagowebdev.com/pivot-table-dengan-mysql/