Wednesday, May 30, 2012

Database එකේ තියන data view කරගමු.

මේ post එකෙන් මං බලාපොරොත්තු වෙන්නේ කලින් post එකේ දාපු data ටික කොහොමද view කරගන්නේ කියලා.  මුලින්ම ඔයාලා කලින් form එකෙන් data set 4ක් 5ක් විතර දාගෙන ඉන්න මොකද අපට display කරගන්න data අවශ්‍ය නිසා.



දැන් අලුත් php file එකක් කලින් විදියම හදාගන්න view.php කියලා.


මේ page එකට link එකක් දාගෙන ඉමු index එකේ.

 <a href="view.php">View Data</a>
මේක ඉතින් මෙලෝ රහක් නැති නිසා දාමු පොඩි style එකක්. මුලින්ම මේක div එකකින් වට කරගන්න.

<div class="link">
    <a href="view.php">View Data</a>
</div>
දැන් මේ style එක දාගන්න.

  .link{
        margin: auto;
        width: 100px;
    }
    .link a{
        border: 1px solid #999;
        color: black;
        display: block;
        font: 12px arial;
        padding: 10px;
        text-align: center;
        text-decoration: none;
    }
    .link a:hover{
        background-color: #999;
        color: white;
        font-weight: bold;
    }

මේකෙදීත් අපි database එකත් එක්ක ගනුදෙනු කරන නිසා මුලින්ම කරන්න ඕනි වැඩේ තමයි connection එක හදාගන්න එක. ඊට පස්සේ data සියල්ලම retrieve වෙන MySQL query එක ලියමු.


<?php
//connecting database
$con = mysql_connect("localhost", "root", "") or die('Cannot connect to the database');
mysql_select_db('phpblog', $con) or die('cannot select the  database');
$result = mysql_query("select * from register");

මේ MySql query එකේ තරු ලකුණෙන් කියන්නේ database filed හැම එකකම data ගන්න කියලයි. ඒ කියන්නේ ID,NAME,ADDRESS,BIRTHDAY & PHONE කියන filed වල තියෙන ඒවා. එහෙම නැත්තම් අපිට ඕන filed name ටික විතරක් දෙන්නත් පුලුවන්.

නම විතර නම් : select name from register
නමයි address එකයි නම් : select name,address from register

දැන් මේකෙන් එන data ටික අපි සමාන කරගෙන තියෙන $result කියන variable එකට ඇවිල්ලයි තියෙන්නේ. 

මේක නිකමට වගේ echo කරලා බැලුවොත් පෙනෙයි අපිට ඕනි එක නෙවෙයි ඇවිත් තියෙන්නේ කියලා. Resource id #4 වගේ මොකක් හරි තමයි print වෙන්නේ.

ඉතින් මේකෙන් return වෙන value, array එකකට දාගන්න ඕනි. 

මේ code එකෙන් ඒක කරගන්න පුලුවන්.
$row = mysql_fetch_array($result)
දැන් ඔයාලා echo $row කියලා ගහලා බැලුවනම් print වෙන්නේ Array කියලා.  Array එකේ තියෙන value print කරගන්නවා නම් print_r($row) කියලා ගහලා බලන්න. 

එත් පොඩි අවුලක් තියෙනවා නේද? එකක් නෙවෙයි 2ක් තියෙනවා. පලවෙනි එක තමයි අපිට data display කරගන්න ඕනි ඔය විදියට නෙවෙයි. ටිකක් ලස්සනට පෙන්නගන්න එපැයි. අනිත් අවුල තමයි ඔතන පෙන්නන්නේ එක row එකයි. අනිත් data ටික නෑ.   

ඇත්තටම database එකෙන් එන data එන්නේ row විදියට. ඒ කියන්නේ database එකේ table එකේ row 5ක් තියෙනවා නම් array 5කට assign වෙනවා වගේ. එතකොට row 5ම පෙන්නන්න ඕනි නම් loop එකක් දාන්න වෙනවා.
while ($row = mysql_fetch_array($result)) {
    echo $row['name'];
  echo $row['address'];
    echo $row['birthday'];
    echo $row['phone'];
    echo "</br>";
}

මේ ටික එනවා කියන්නේ වැඩේ සෑහෙන තරමට ගොඩ. මේක table එකකට ඔබා ගත්ත නම් ලස්සන කරලා ගන්න තිබ්බා. ඔන්න එබුවා එහෙනම්.

echo "<table>";
while ($row = mysql_fetch_array($result)) {
    echo "<tr>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['address'] . "</td>";
    echo "<td>" . $row['birthday'] . "</td>";
    echo "<td>" . $row['phone'] . "</td>";
    echo "</tr>";
}
echo "</table>";

මේ style ටිකත් දාලා බලන්නකෝ..


 table{
        background-color: lightskyblue;
        font: 12px arial;
        margin: 50px auto;
        padding: 10px;
        width: 400px;
    }

    table tr:first-child{
        text-align: left;
    }
    table tr td{
        font:12px arial;
    }



පොඩි link එකකුත් දෙමු index page එකට යන්න.


<div class="link">
    <a href="index.php">Home</a>
</div>


.link{
        margin: auto;
        width: 100px;
    }
    .link a{
        border: 1px solid #999;
        color: black;
        display: block;
        padding: 10px;
        text-align: center;
        text-decoration: none;
    }
    .link a:hover{
        background-color: #999;
        color: white;
        font-weight: bold;
    }

මෙන්න code එක. http://www.mediafire.com/?2vank2ta499geve

මහ ලොකු අමාරුකමක් නම් නෑ මේවගේ. මුලදි පුරුදු නැති වුණාම ඒ වගේ දෙයක් දැනෙන්න පුලුවන්.  එත් ටික කාලයක් ආසාවෙන් කලාම ඇගටම එනවා. ඊලග post  එකේ මේකේ update එකයි delete එකයි කරමු.



2 comments:

Pathum Herath said...

හොඳ වැඩක්. දිගටම ලියන්න මල්ලී.. මේ වර්ඩ් වෙරිෆිකේෂන් එක අයින් කරල දාන්න.. කොමෙන්ට්ස් දාන අයට කරදරයක් වෙනවා ගොඩක් වෙලාවට..

Dilan said...

Niyamai machan digatama liyanna