while loop
10 replies [Last post]
does not have a status.
User offline. Last seen 20 weeks 2 days ago. Offline
Joined: 02/09/2010
Points: 2

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!

ibnuyahya.com
User offline. Last seen 6 hours 34 min ago. Offline
Joined: 08/16/2009
Points: 109

salam

#1
alang2 dah taip kod tu, try la run tgk hasil Smile

does not have a status.
User offline. Last seen 20 weeks 2 days ago. Offline
Joined: 02/09/2010
Points: 2

heh..sbnrnye da cuba.. mcm x berhasil..sbb tu lah bertanya..
mungkin ada yg boleh bg penyelesaian yg lebih baik.. Big smile

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..

keje :)
zam3858's picture
User offline. Last seen 5 days 20 hours ago. Offline
Moderator
Joined: 04/26/2003
Points: 265

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.

does not have a status.
User offline. Last seen 9 weeks 4 days ago. Offline
Joined: 01/27/2010
Points: 28

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);
?>


bye-bye... kami dah dapat kerja
jobless's picture
User offline. Last seen 10 weeks 1 day ago. Offline
Joined: 12/12/2009
Points: 450

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

jangan private message aku, ada forum so guna forum. aku gila point jadi aku tak layan private message. terima kasih
User offline. Last seen 17 hours 22 min ago. Offline
Joined: 08/16/2009
Points: 906

different database perlukan different connection kalau tak nak main close close nih.

does not have a status.
User offline. Last seen 20 weeks 2 days ago. Offline
Joined: 02/09/2010
Points: 2

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..

bye-bye... kami dah dapat kerja
jobless's picture
User offline. Last seen 10 weeks 1 day ago. Offline
Joined: 12/12/2009
Points: 450

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?

tak banyak boleh sikit pun jadi lah
User offline. Last seen 25 weeks 15 hours ago. Offline
Joined: 01/07/2010
Points: 11

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.

macam mana nak dapat RM 1000 sebelum raya nanti???
amin007's picture
User offline. Last seen 5 hours 50 min ago. Offline
Moderator
Joined: 08/16/2009
Points: 974

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]."&nbsp;</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 ...