Yii Dropdown Dependent Controller

PHP

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

<?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> &nbsp&nbsp&nbsp
                <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

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

Mysql

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`

 

Cara redirect ke https

PHP

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

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/