sy nk mintak pendpt semua.. possible tak klu sy nk loop 2 database dlm satu ms?
cth camni..
$query = "SELECT * FROM table";
$result = mysql_query($query) or die('Query failed. ' . mysql_error() . ' Actual query: ' . $query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$query2 = "SELECT * FROM table2";
$result2 = mysql_query($query2) or die('Query failed. ' . mysql_error() . ' Actual query: ' . $query2);
}
........
........
note: $query from database1 & $query2 dr database2
boleh ke buat camtu?
one more thing sy de prob..database tak boleh connect on certain function..da connect guna
mysql_select_db("database1",mysql_connect("localhost", "root", ""));
kebykan function boleh connect pakai command atas ni.. tp ade certain yg x boleh..dah pening mencari solution.. mintak tlg experts2 disini.. tQ!
heh..sbnrnye da cuba.. mcm x berhasil..sbb tu lah bertanya..
mungkin ada yg boleh bg penyelesaian yg lebih baik.. 
oh ye penambahan kpd soalan di atas.. setakat yg sy tahu..
kene select db & close db..so klu sy da close database1 tu..camne nk run while loop tu..
eyybee, dalam satu script, perlu connect sekali sahaja. tak perlu 2 3 kali. tp buat camni
<?php
mysql_connect("localhost", "admin", "1admin") or die(mysql_error());
?>so bila dia fail nanti, kita tau kenapa dia fail.
dari code yang diberi, kenapa mesti loop dalam $result,
dari $result tu, apa field yang ndak digunakan ?
kalau ndak query dari dua database, kena buat camni:
<?php
$connection1 = mysql_connect($host1, $user1, $pass1);
$connection2 = mysql_connect($host2, $user2, $pass2);
?>then masa ndak buat query, kena pula buat camni:
<?php
// contoh sql statement
$stmt1 = "select * from $table1";
$stmt2 = "select * from $table2";
$query1 = mysql_query($stmt1, $connection1);
$query2 = mysql_query($stmt2, $connection2);
?>
eyybee,
hampa kata buat connection dalam function, adakah function tu sebenarnya satu fail php, atau memang function; contoh
function kira($gaji) {
return $gaji * 0.6;
}
pasai pa ada banyak database? memang hampa buat, atau melibatkan orang lain?
boleh ada banyak database, tapi elok pastikan connection setiap satu berjalan dengan elok sebelum nak panggil serentak
different database perlukan different connection kalau tak nak main close close nih.
sistem ni ada 2 version.. tp skrg client guna v2.. cumanya ada bbrp benda cam transaction history yg client boleh retrieve dr v1.. sbb tu ada 2 database.. structure dua2 database ni berbeza..so tak boleh migrate data dr v1 ke v2.. begitulah ceritanya..
btw, function mksdnye function la..bkn satu file php..
jadi, adakah hampa buat connection dalam setiap function, ataupun buat satu connection dan guna dalam banyak function. tapi masalahnya ialah kadang-kadang ia tidak berfungsi... atau macam mana?
Dengan mysql kita boleh pilih/select data drp dua db berlainan serentak. Caranya tambah nama db depan setiap 'table' berkaitan.
Contoh:
$query = "SELECT * FROM table";
Katakan db1 dan db2,
Tukar jadi:
$query = "SELECT * FROM db1.table";
$query2 = "SELECT * FROM db2.table";
Atau kita boleh terus join kalau ada key yang sepadan nilainya
Contoh:
$query = "SELECT * FROM db1.table t1 INNER JOIN db2.table2 t2 ON t1.no_akaun=t2.no_akaun";
Connection DB.
Buat cara ringkas.
Letak function db connection dalam satu fail khas untuknya shj.
Panggil setiap kali nak guna.
Tak perlu buat arahan close connection. PHP (v5) buat automatik.
biasanya kalau aku nak connection db aku buat dalam satu fail sahaja
biasanya aku namakan db_buka.php
<?php
$ip =$_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$hostname2 = $_SERVER["REMOTE_HOST"];
$server=$_SERVER["SERVER_NAME"];
/*
echo "<br>Alamat IP : <font color='red'>".$ip."</font> |
\r<br>Nama PC : <font color='red'>".$hostname."(".$hostname2.")</font> |
\r<br>Server : <font color='red'>".$server."</font>\r";
*/
if ($server == "server.aku.mana")
{
define('Server', "localhost");
define('User', "***");
define('Pass', "***");
define('DB', "o_mdt10");
}
else
{
define('Server', "localhost");
define('User', "***");
define('Pass', "***");
define('DB', "pom_mdt10");
}
//echo Server.",".User.",".Pass.",,".DB." <br>";
$s = @mysql_connect(Server, User, Pass) or die (mysql_error());
$d = @mysql_select_db(DB, $s) or die (mysql_error());
?>lepas tu kalau nak panggil banyak jadual/table serentak aku buat macam ni aje
<?php
function kira($kiraan) {return number_format($kiraan, 0, '.', ',');}
function kira2($dulu,$sekarang) {@$kiraan=(($sekarang-$dulu)/$dulu)*100;
return number_format($kiraan,0,'.',',');}
$tab_ = array('kawal_jan10', 'kawal_feb10', 'kawal_mac10', 'kawal_apr10',
'kawal_mei10', 'kawal_jun10', 'kawal_jul10', 'kawal_ogo10',
'kawal_sep10', 'kawal_okt10', 'kawal_nov10', 'kawal_dis10');
echo "<table bgcolor='#ffffff' class='excel' border=1>".
"\n<tr>\n<td># (Jadual: ".$myTable.")</td>";
$r=array("msic","baru","terima","hasil","dptLain","web","stok","staf","gaji");
for ($x=0;$x < 9;$x++){ echo "\n<td>".$r[$x].",</td>"; }
echo "\n</tr>";
$medan="fid,nama,msic,baru,terima,hasil,dptLain,web,stok,staf,gaji";
foreach ($tab_ as $key2 => $key )
{// mula ulang table
$query="SELECT ".$medan." FROM `".$key."` WHERE fid like '".$nofid."' ";
$result = mysql_query($query) or die(mysql_error()."<hr>$query<hr>");
$semak = mysql_query($query) or die(mysql_error()."<hr>$query<hr>");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
// nak papar bil. brg
if ($rows=='0' or $_GET[cari]==null or $nofid==null): echo "<br><font color=red>
Maaflah, ".$carian." tak jumpalah pada jadual :".$key."
<font face=Wingdings size=5>L</font></font>";
else: // kalau jumpa
while($row = mysql_fetch_array($result)) // isi medan
{// mula papar imej
echo "\n<tr>";
echo "\n<td align=center>".$row[1]." ".$key."</td>";
for ( $f = 2 ; $f < $fields ; $f++ )
{
$name=mysql_field_name($result,$f);$name2=$r[$f];
if ($f==2){// msic
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' size=3>";
}elseif ($f==3){// respon
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' size=1>";
}elseif ($f==4){// tarikh terima
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' ".
"size=10 onclick=\"displayDatePicker('".$key."[$name]', this);\" readonly >";
}elseif ($f==5){// jualan
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' size=8>";
$jual[$key2]=$row[$f];
}else{
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' ".
"size=5 align=right>";}
echo "\n<td align=right>".$input."</td>";
}
echo "\n</tr>";
}// tutup papar imej
while($ke = mysql_fetch_array($semak)) // isi medan
{// mula papar imej
echo "\n<tr bgcolor='plum'>\n<td align=center>".
$ke[0]."=>".kira2($jual[$key2-1],$ke[5])."%</td>";
for ( $f = 2 ; $f < 5 ; $f++ )
{echo "\n<td>".$ke[$f]."</td>";}
for ( $f = 5 ; $f < $fields ; $f++ )
{echo "\n<td align=right>".@kira($ke[$f])."</td>";}
echo "\n</tr>";
}// tutup papar imej
endif; //tamat jika jumpa
}// tamat ulang table
?>kalau nak tambah lagi jadual, aku buat macam ni pulak
<form name="yourform" action="kawal_edit.php" enctype="multipart/form-data" method="POST">
<fieldset><?php
$rangkaMDT10 = array('kawal_rangka');
//$perhatian='concat(status,indeks,ec)';
$medan='fid,nama,msic,msicB,nota,respon,fe,tel,fax,responden,email';
foreach ($rangkaMDT10 as $key => $ubah)
{// mula ulang table
$query="SELECT ".$medan." FROM `".$ubah."`
WHERE fid like '".$nofid."' ";
$result = mysql_query($query) or die(mysql_error()."<hr>$query<hr>");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
// nak papar bil. brg
if ($rows=='0'): echo "<br><font color=red>
Maaflah, ".$carian." tak jumpalah pada jadual :".$key."
<font face=Wingdings size=5>L</font></font>";
else: // kalau jumpa
echo "\n<table border=1 class='excel' bgcolor='#ffffff'>\n";
while($row = mysql_fetch_array($result))
{ for ( $f = 0; $f < $fields ; $f++ )
{// masuk - mula
$name=mysql_field_name($result,$f);//$f==3 - nama
//if ($f==10):$input="<textarea name='".$key."[$name]' rows='5' cols='40' id='canvas'>".$row[$f]."</textarea>";
if ( ($f==0) or ($f==1) or ($f==2) ): $input="$row[$f]";
elseif ($f==4) :$input="<textarea name='".$ubah."[$name]' rows=2 cols=20>".$row[$f]."</textarea>";
//elseif (($f==7)||($f==8)): $input="<input type='text' name='".$key."[$name]'\r\t value='".$row[$f]."' ".
//"size=10\r\t onclick=\"displayDatePicker('".$key."[$name]', this);\" readonly >";
else :$input="<input type='text' name='".$ubah."[$name]' value='".$row[$f]."' size='30'>";
endif; echo "<tr><td>$f-".$name."</td><td>".$input."</td>";
echo "<td bgcolor='plum'>".$row[$f]."</td></tr>\r";
}// masuk - tamat
}
echo "\n</table>\n";
endif; //tamat jika jumpa
}// tamat ulang table
?></fieldset>
<fieldset><?php
//-------------------------------------------------------------------------------------------------
// nak buat tab - mula
function kira($kiraan) {return number_format($kiraan, 0, '.', ',');}
function kira2($dulu,$sekarang) {@$kiraan=(($sekarang-$dulu)/$dulu)*100;
return number_format($kiraan,0,'.',',');}
$tab_ = array('kawal_jan10', 'kawal_feb10', 'kawal_mac10', 'kawal_apr10',
'kawal_mei10', 'kawal_jun10', 'kawal_jul10', 'kawal_ogo10',
'kawal_sep10', 'kawal_okt10', 'kawal_nov10', 'kawal_dis10');
echo "<table bgcolor='#ffffff' class='excel' border=1>".
"\n<tr>\n<td># (Jadual: ".$myTable.")</td>";
$r=array("msic","baru","terima","hasil","dptLain","web","stok","staf","gaji");
for ($x=0;$x < 9;$x++){ echo "\n<td>".$r[$x].",</td>"; }
echo "\n</tr>";
$medan="fid,nama,msic,baru,terima,hasil,dptLain,web,stok,staf,gaji";
foreach ($tab_ as $key2 => $key )
{// mula ulang table
$query="SELECT ".$medan." FROM `".$key."` WHERE fid like '".$nofid."' ";
$result = mysql_query($query) or die(mysql_error()."<hr>$query<hr>");
$semak = mysql_query($query) or die(mysql_error()."<hr>$query<hr>");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
// nak papar bil. brg
if ($rows=='0' or $_GET[cari]==null or $nofid==null): echo "<br><font color=red>
Maaflah, ".$carian." tak jumpalah pada jadual :".$key."
<font face=Wingdings size=5>L</font></font>";
else: // kalau jumpa
while($row = mysql_fetch_array($result)) // isi medan
{// mula papar imej
echo "\n<tr>";
echo "\n<td align=center>".$row[1]." ".$key."</td>";
for ( $f = 2 ; $f < $fields ; $f++ )
{
$name=mysql_field_name($result,$f);$name2=$r[$f];
if ($f==2){// msic
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' size=3>";
}elseif ($f==3){// respon
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' size=1>";
}elseif ($f==4){// tarikh terima
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' ".
"size=10 onclick=\"displayDatePicker('".$key."[$name]', this);\" readonly >";
}elseif ($f==5){// jualan
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' size=8>";
$jual[$key2]=$row[$f];
}else{
$input="<input type='text' name='".$key."[$name]' value='".$row[$f]."' ".
"size=5 align=right>";}
echo "\n<td align=right>".$input."</td>";
}
echo "\n</tr>";
}// tutup papar imej
while($ke = mysql_fetch_array($semak)) // isi medan
{// mula papar imej
echo "\n<tr bgcolor='plum'>\n<td align=center>".
$ke[0]."=>".kira2($jual[$key2-1],$ke[5])."%</td>";
for ( $f = 2 ; $f < 5 ; $f++ )
{echo "\n<td>".$ke[$f]."</td>";}
for ( $f = 5 ; $f < $fields ; $f++ )
{echo "\n<td align=right>".@kira($ke[$f])."</td>";}
echo "\n</tr>";
}// tutup papar imej
endif; //tamat jika jumpa
}// tamat ulang table
?>
<tr><td valign=top colspan=<? echo "".($fields-1).""; ?>>
<a name="bulan"></a>
<? $ip=$_SERVER["REMOTE_ADDR"];
echo "<input type='hidden' name='ip' size='10' value=$ip>\n";
$pc = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo "<input type='hidden' name='pc' size='10' value=$pc>\n";
?><input type="hidden" name="pilihan" value="<?php echo $pilihan; ?>">
<input type="hidden" name="carian" value="<?php echo $nofid; ?>">
<input type="submit" value="Proses" name="semua" id="semua">
<?php echo "<font size=5 color=red>".$_GET['ralat']."</font> "; ?>
</td></tr>
</table></fieldset>atau kalau aku nak cari serentak pada jadual berasingan
<?php
$myJadual=array('kawal_rangka','kawal_rangka');
$medanSemak[]='fid,nama,no_siri,msic,alamat1,alamat2,poskod,dp,po';
$medanSemak[]='fid,nama,fe,status,indeks,ec,tel,fax,responden,email';
//$medanSemak[]='fid,nama,msic,msicB,nota,respon,fe';
//------------------------------------------------------------------------------
foreach ($myJadual as $key => $myTable)
{// mula ulang table
$sql="SELECT ".$medanSemak[$key]." FROM ".$myTable."
WHERE concat(fid,nama) like '%".$_GET[cari]."%' ";
$result = mysql_query($sql) or die(mysql_error()."<hr>$sql<hr>");
$fields = mysql_num_fields ($result);
$rows = mysql_num_rows ($result);
// nak papar bil. brg
if ($rows=='0' or $_GET[cari]==null): echo "<br><font color=red>
Maaflah, ".$_GET[cari]." tak jumpalah pada jadual :".$myTable."
<font face=Wingdings size=5>L</font></font>";
else: // kalau jumpa
echo "<table border=1 class='excel' bgcolor='#ffffff'>"."\n<tr>".
"\n<td colspan=2>fid (Jadual: ".$myTable.")</td>";
for ( $f = 1 ; $f < $fields ; $f++ )
{ echo "\n<td>".mysql_field_name($result,$f).",</td>"; }
echo "\n</tr>";
$bil=1; while($row = mysql_fetch_array($result)) // isi medan
{// mula papar
echo ($bil % '2'=='0')? "\n<tr bgcolor='plum'>": "\n<tr>";
echo "\n<td>".$bil++."</td>";
for ( $f = 0 ; $f < $fields ; $f++ )
{echo "\n<td>".$row[$f]." </td>";}
echo "\n</tr>";$nofid=$row[0];
}// tutup papar
echo "\n</table>";
endif; //tamat jika jumpa
}// tamat ulang table
?>persoalannya nak loop jadual/table kan hehehe
yang penting pastikan anda berjaya masuk ke dalam servey mysql
mysql_connect(Server, User, Pass) or die("die hard 4.0")
mysql_select_db(DB, $s) hanya nak pastikan bahawa anda memilih database yang betul
tapi kalau nak panggil database berlainan, buatlah mysql_select_db(DB, $s)
banyak-banyak kali untuk keselamatan diri hehehe
apa pun anda kena jelas
1) apa output yang anda inginkan
2) apa input yang wajib ada
3) proses langkah demi langkah.
dalam php program kita boleh pecah-pecahkan ikut suka hati
dan boleh cantum di mana-mana bahagian yang kita suka huhuhu
jadi gunakan include dan ...
salam
#1
alang2 dah taip kod tu, try la run tgk hasil