Skip to main content

Navigation

fanjava's friends

tanya foreach

November 4, 2010 by fanjava

fanjava's picture

ane nyoba ngebuat fungsi ini..buat ngecek username yang udah terdaftar di DB, sehingga kalu ada user yang registrasi dengan username yang sama dengan di DB, keluar error.
Problem : Kenapa yang dicek usernamenya cuma baris pertama saja di DB..??

function username_check($str){
	$data['user'] = $this->formModel->getData();
 
foreach($data['user'] as $usr):
  if($str == $usr->username){
	$this->validation->set_message('username_check','Username already exist');
	return FALSE;
  }else{
	return TRUE;
       }
endforeach;
}

Mohon bantuannya :)

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Berhasil :)

November 4, 2010 by fanjava, 5 weeks 4 days ago
Comment: 7347

fanjava's picture

Dh,

Alhmdulillah sudah berhasil ,pak :)

thanks pencerahannya :D

function username_check($str){
$data['user'] = $this->formModel->getData();
 
	foreach($data['user'] as $usr){ 
		if($str == $usr->username){ //bernilai TRUE
			$this->validation->set_message('username_check','Username already exist');
				RETURN FALSE;
				}
		}

formModel

November 4, 2010 by fanjava, 5 weeks 5 days ago
Comment: 7342

fanjava's picture

ini formModel saya.. mhon pencerahannya :)

<?php 
	class FormModel extends Model{
	function __construct(){
		parent::Model();
	}
 
	function getData(){
		return $this->db->get('user')->result();
	}
}
?>

Maaf saya yang salah

November 4, 2010 by heidymadia, 5 weeks 5 days ago
Comment: 7343

heidymadia's picture

Mas fanjava,

Maaf ternyata saya yang salah. Jadi jangan di BATA MERAH yaa :P

Jawaban dari Problem : Kenapa yang dicek usernamenya cuma baris pertama saja di DB..??

adalah mas fanjava menggunakan return.

function username_check($str)
{
	$data['user'] = $this->formModel->getData();
 
	foreach($data['user'] as $usr):
		if($str == $usr->username){
			$this->validation->set_message('username_check','Username already exist');
			return FALSE;
		}else{
			return TRUE;
		}
	endforeach;
}

return pada code mas fanjava di atas bukan hanya membuat dia keluar dari loop foreach, tapi juga keluar dari function username_check() dan memberikan return value yang sesuai TRUE | FALSE

just that simple.

Tapi jikalau di database sudah dibuat unique kenapa harus dijalankan ke dalam loop? Karena pastinya di database hanya ada satu user

PS: ini ada satu link menarik untuk login dari forum codeigniter
http://codeigniter.com/forums/viewthread/81325/

REP

November 4, 2010 by fanjava, 5 weeks 5 days ago
Comment: 7344

fanjava's picture

terima kasih, pak akan sya coba.. :)

tpi sya masih menyimpan tanda tanya(?) dengan statement bpak,,hehe :D ma.af agk error :p

"Tapi jikalau di database sudah dibuat unique kenapa harus dijalankan ke dalam loop? Karena pastinya di database hanya ada satu user"

kasus sya begini membuat sebuah form registrasi,dimana setiap user yg dftar mempunyai user yg beda.Kalau menurut logika yg sya tangkap, begini.. saat user submit data,program mengecek data(username) yang disubmit user apakah ada di database.jika ada error. jika tidak regstrasi sukses..

:) maaf kalu salah nalar :))

RE: tanya foreach

November 4, 2010 by heidymadia, 5 weeks 5 days ago
Comment: 7341

heidymadia's picture

Mas fanjava,

Perkiraan saya adalah,
masalahnya return value Function getData() di Model formModel

$this->formModel->getData();

Saya belum lihat function anda di Model formModel. Bisa tolong dipostingkan?

coba lihat link ini buat result database

http://codeigniter.com/user_guide/database/results.html

Premium Drupal Themes by Adaptivethemes