Re: OOP in PHP

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

 



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


[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