Re: OOP in PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Jim,

thanks for your help. I've modified my codes as you adviced.
But than the output is:
"
superclass koneksi dipanggil
koneksi berhasil
No results found
"

The column 'country' of table 'countries' already really contents complete all contry name from all over the earth. How come the query of "select country from countries" results empty value. So I believe the problem is still on the my OOP programming because if I do the query only with the "procedural concept" the $kueri will content the complete record of the column "country".

Please keep telling what is my mistake on my OOP PHP5 codes.
-----
//pelangganbaru.php
	<?php
	include_once "koneksi.php";
	$sqlnya="select * from countries";
	$klas=new koneksi($sqlnya);
	if ( mysql_num_rows($klas) > 0 ) {
		while( list($negara) = mysql_fetch_row($klas) ) {
			echo "negara->$negara<br>";
		}
	} else {
	echo 'No results found';
	}
	?>
-----
//koneksi.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>
<HEAD>
  <META name="generator" content="HTML Tidy for Linux/x86 (vers 31 October 2006), see www.w3.org">

</HEAD>

<BODY>
<?php
class koneksi{
var $namakompie="127.0.0.1";
var $un="root";
var $pw="mysuccess";
var $sqlnya;
var $kueri;

function koneksi($sqlnya){
echo "superclass koneksi dipanggil<br>";
$konek=mysql_connect("$this->namakompie","$this->un","$this->pw");
if ($konek){
	echo "koneksi berhasil<br>";
	$mybd=mysql_select_db("survey",$konek);
	//$kueri=mysql_query($sqlnya,$konek);
	$kueri=mysql_query($sqlnya,$konek) or die('MYSQL QUERY ERROR ['.mysql_errno($konek).'] '.mysql_error($konek));
}else{
	echo "I can't talk to the server<br>";
	exit();
}
return $kueri;
}

}
?>
</BODY>
</HTML>
===
On Wed, 15 Aug 2007 13:13:18 -0700
Jim Lucas <lists@xxxxxxxxx> wrote:

> Patrik Hasibuan wrote:
> > Dear Jim,
> > 
> > You've solved my problem, Jim. Thank you very much.
> > 
> > Now, my code give the output as my expectation:
> > "
> > superclass koneksi dipanggil
> > koneksi berhasil
> > negara->
> > ". 
> > But come another problem, namely: the $negara is empty. I tried to read the documentation on 
> > "
> > http://www.php.net/manual/en/language.types.object.php#language.types.object.casting
> > "
> > but I didn't manage to find the answer.
> > 
> > I suspect the "return $kueri" could be only for 'returning' a variable of boolean or string or number but not 'returning' an array (such as the result of mysql_query("select country from countries",$koneksi) ) or an object (such as the result of mysql_connect() ).
> > 
> > So how should I get the content of mysql_query() so I can get the value with "mysql_fetch_row()" or inherit array?
> > Is is also possible to re-use the result of "mysql_connect()" or inherit the $konek?
> > 
> > Here is my current code:
> > ====
> > //pelangganbaru.php
> > 	<?php
> > 	include_once "koneksi.php";
> > 	$sqlnya="select country from countries";
> > 	$klas=new koneksi($sqlnya);
> 
> Try this instead
> 
> if ( mysql_num_rows($klas) > 0 ) {
> 	while( list($negara) = mysql_fetch_row($klas) ) {
> 		echo "<option value=\"$negara\">$negara</option>";
> 	}
> } else {
> 	echo 'No results found';
> }
> 
> And within your class change your mysql_query line to this
> 
> $kueri=mysql_query($sqlnya,$konek) or die('MYSQL QUERY ERROR ['.mysql_errno($konek).'] 
> '.mysql_error($konek));
> 
> This will make the system fail and kill the script if the query fails for some reason.
> The die() part will then print the error number and what mysql thinks is wrong.
> 
> This isn't the best way to use error reporting in a production system, but since you are new at 
> this, this is a simple way to do error reporting.
> 
> It is always a good idea to use is_resource($resource_handle_from_mysql) as a test to see if you did 
> in fact get a valid resource id from the mysql_connect() call.
> 
> 
> > 	$brs=mysql_fetch_row($klas->kueri);
> > 	list($negara)=$brs;
> > 	echo "<option value=\"$negara\">$negara</option>";
> > 	
> > 	?>
> > =====
> > //koneksi.php
> > <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> > 
> > <HTML>
> > <HEAD>
> >   <META name="generator" content="HTML Tidy for Linux/x86 (vers 31 October 2006), see www.w3.org">
> > 
> > </HEAD>
> > 
> > <BODY>
> > <?php
> > class koneksi{
> > var $namakompie="127.0.0.1";
> > var $un="root";
> > var $pw="mysuccess";
> > var $sqlnya;
> > var $kueri;
> > 
> > function koneksi($sqlnya){
> > echo "superclass koneksi dipanggil<br>";
> > $konek=mysql_connect("$this->namakompie","$this->un","$this->pw");
> > if ($konek){
> > 	echo "koneksi berhasil<br>";
> > 	$mybd=mysql_select_db("survey",$konek);
> > 	$kueri=mysql_query($sqlnya,$konek);
> > }else{
> > 	echo "I can't talk to the server<br>";
> > 	exit();
> > }
> > return $kueri;
> > }
> > 
> > }
> > ?>
> > </BODY>
> > </HTML>
> > ====
> > Please keep telling me.
> > 
> > Thank you very much in advance.
> > ps: Thanks a lot too to Nathan Nobe and Robert Gegen for their responds...
> > ====
> > On Wed, 15 Aug 2007 09:00:56 -0700
> > Jim Lucas <lists@xxxxxxxxx> wrote:
> > 
> >> A few missing pieces in your code.  Take a look below within your class.  I corrected it.
> >>
> >> try also using include_once instead of require
> >>
> >> and make sure that your error level and reporting are turned on so you can see what is happening.
> >>
> >>
> >> Patrik Hasibuan wrote:
> >>> Dear my friends,
> >>>
> >>> This is the first time for me to use OOP concept of PHP. I wrote still a very simple codes but it doesn't work as my manual book taught. the book titled "MySQL/PHP Database Application" by Jay Greenspan say these lines should work but in fact it don't work as expected.
> >>> Here is my code:
> >>> ===============================
> >>> //pelangganbaru.php
> >>> <?php
> >>> require "koneksi.php";
> >>> $sqlnya="select country from countries";
> >>> $klas=new koneksi($sqlnya);
> >>> ?>
> >>> ===============================
> >>> //koneksi.php
> >>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> >>>
> >>> <HTML>
> >>> <HEAD>
> >>>   <META name="generator" content="HTML Tidy for Linux/x86 (vers 31 October 2006), see www.w3.org">
> >>>
> >>> </HEAD>
> >>>
> >>> <BODY>
> >>> <?php
> >>> class koneksi{
> >>> $namakompie="127.0.0.1";
> >> var $namakompie='127.0.0.1';
> >>> $un="root";
> >> var $un='root';
> >>> $pw="mysqlpw";
> >> var $pw='mysqlpw';
> >>> $sqlnya;
> >> var $sqlnya;
> >>> $kueri;
> >> var $kueri;
> >>> function koneksi($sqlnya){
> >>> echo "superclass koneksi dipanggil<br>";
> >>> $konek=mysql_connect("$namakompie","$un","$pw");
> >> $konek=mysql_connect($this->namakompie, $this->un, $this->pw);
> >>> if ($konek){
> >>> 	echo "koneksi berhasil (connection succeeded)<br>";
> >>> 	$mybd=mysql_select_db("survey",$konek);
> >>> 	$kueri=mysql_query($sqlnya,$konek);
> >>> }else{
> >>> 	echo "I can't talk to the server<br>";
> >>> 	exit();
> >>> }
> >>> return $kueri;
> >>> }
> >>>
> >>> }
> >>> ?>
> >>> </BODY>
> >>> </HTML>
> >>> =====
> >>>
> >>> Theoritically if Class "koneksi" is being initialized than it prints "koneksi berhasil (connection succeeded)" but it doesn't.
> >>>
> >>> Please tell me what is my mistake.
> >>>
> >>> Thank you very much in advance.
> >>
> >> -- 
> >> Jim Lucas
> >>
> >>     "Some men are born to greatness, some achieve greatness,
> >>         and some have greatness thrust upon them."
> >>
> >> Twelfth Night, Act II, Scene V
> >>      by William Shakespeare
> >>
> >> -- 
> >> PHP General Mailing List (http://www.php.net/)
> >> To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >>
> >>
> > 
> > 
> 
> 
> -- 
> Jim Lucas
> 
>     "Some men are born to greatness, some achieve greatness,
>         and some have greatness thrust upon them."
> 
> Twelfth Night, Act II, Scene V
>      by William Shakespeare
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 
> 


-- 
Patrik Hasibuan <patrikh@xxxxxxxxxxxxxxxxxxxxx>
Junior Programmer

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux