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 එකයි කරමු.



Sunday, May 27, 2012

form එකක තියෙන data, Database එකකට දාමු.

මං මේ post එකෙන් කියාදෙන්න හදන්නේ අපි හදන form එකක data ටික කොහොමද database එකකට දාලා ස්ථීරවම තියාගන්නේ කියලා.

මං මේ වැඩේ කරන්න පාවිච්චි කරන්නේ NETBEANS කියන IDE එක. මේකෙන් ගොඩක් වැඩ ගන්නේ JAVA කරන්න හැබැයි PHP වලටත් හොදයි. PHP වැඩ කරන්න නම් IDE එක download කරද්දි PHPත් එක්ක download කරන්න ඕනි.

මුලින්ම අපි HTML Form එක හදාගෙන ඉමු. ඉස්සෙලාම WWW folder එකට ගිහින් මොකක් හරි නමකින් folder එකක් හදාගන්න. මේක ඇතුලට තමයි අපේ හැම file එකක්ම දාන්න යන්නේ. ඊට පස්සේ NETBEANS එකට ගිහින් අලුත් project එකක් හදාගන්න. එකේ source folder එක අනිවාර්යයෙන්ම  WWW folder ඔයා හදපු folder එකට දෙන්න.

අලුත් project එකක් හදන්න

project එක හැදුවට පස්සේ මෙහෙමයි...


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

ඒකට source files එක් right click කරලා new file->php file තෝරන්න.


දැන් ඒකට index කියලා නම දීලා finish කරන්න.




  • දැන් ඔයාලාට පේනවා ඇති index.php කියලා file එකක් හැදිලා
    <?php    ?> 
     කියලා කොටසක් ඇවිත් තියෙනවා. 

  • හැම PHP code එකක්ම ගහන්න ඕනි ඔය
    <?php    ?> 
    Tag ඇතුලේ තමයි.
  •  php code විතරක් නෙවෙයි html, javascript,css වගේ ඒවත් ගහන්න පුලුවන්. 
  • එතකොට ඒ code ගහන්න ඕනි
    <?php echo " html code" ?>
    විදියට. එහෙම නැත්තම් PHP tag වලින් එලියේ ගහන්න ඕනි.  

දැන් form එක හදමු.

මං html code එක php tag වලින් පිට ලියනවා.








<form action="" method="post" name="firstForm">

    <table>
        <tr>
            <th>Name :</th>
            <td> <input type="text" name="fname" class="textfield"/></td>
        </tr>
        <tr>
            <th>Address :</th>
            <td>  <input type="text" name="fphone" class="textfield"/></td>
        </tr>
        <tr>
            <th>Birthday :</th>
            <td> <input type="text" name="fname" class="textfield"/></td>
        </tr>
        <tr>
            <th>Phone No :</th>
            <td> <input type="text" name="fbirthday" class="textfield"/></td>
        </tr>
        <tr>
            <th> </th>
            <td><input type="submit" name="insert" value="Add" /></td>
        </tr>

    </table>

</form>


මේ code එක run කරාම (Run කරන විදිය කලින් post එකේ තියෙනවා)  මේ විදියට පෙනේවි.

මේක ලස්සන කරගන්න ඕන නම් මේ css code එකත් php tag වලට පිටින් දාගන්න.



<style>
    form{
        background-color: lightskyblue;
        margin: 100px auto;
        padding: 20px;
        width: 300px;
    }

    form table tr th{
        font-family: arial;
        font-size: 12px;
        font-weight: normal;
        text-align: right;
    }

    form .textfield{
        width: 200px;
    }
    
    form table tr td .button{
        text-align: right;
    }
    
    
  
</style>

එතකොට මේ විදියට පෙනේවි.


මේක මං table එකකට දාලා තියෙන්නේ මට ගානට format කරගන්න ඕන නිසා. table එක නොදා  CSS වලින් වුනත් මේක මේ විදියට හදාගන්න පුලුවන්. 

මේ form එකේ action="" විදියට දාලා තියෙන්නේ form එකේ data ටික pass වෙන්න ඕනි මේ file එකටම නිසා. වෙන file එකකට යවා ගන්න ඕනි නම් ඒ file එකේ නම දෙන්න.

form එකෙන් එන data යවා ගන්න මුලින්ම database එකක් හදාගමු.

ඒකට WAMP icon එක left click කරලා  phpmyadmin තෝර ගන්න. 

create a new database කියලා තියෙන තැන කැමති database name එකක් දෙන්න.

දැන් create new table කියන තැන Name එක "register" කියලත්, Number of fields තැන 5 කියලත් දෙන්න.
Go click කරලා එන window එකේ මේ values දෙන්න.


මතක ඇතුව id එක දාපු row එකේ අන්තිමට index එක primary කියලා select කරන්න.  A_I එකේ checkbox එක select කරන්න.


දැන් save click කරන්න.


හරි අපි දැන් database එක හදලා ඉවරයි. දැන් form එකේ තියෙන data අරගෙන මේ data base එකේ register table එකට insert කරගමු.





<?php

if (isset($_POST['insert'])) { // cheking whether form is submitted
    
    $name = $_POST['fname']; // getting the name
    $address = $_POST['faddress']; //getting the address
    $birthday = $_POST['fbirthday']; //getting the birthday
    $phone = $_POST['fphone']; // getting the phone no
}
?>

මේ php code එකෙන් form එකේ type කරපු data variable වලට ගන්නවා.  මේකේ මං if එකක් දාලා තියෙන්නේ form එකේ add button එක click කරලා තියෙනවද කියලා check කර ගන්න. ඒ කියන්නේ form එක submit කරලා තියෙනවද කියලා දැනගන්න. කොටු වරහන් ඇතුලේ දාලා තියෙන්නේ form එකේ ඒ ඒ input field වල name= කියලා දාලා තියෙන නම.

මේ ගත්ත value ටික database එකට දාගන්න නම්, අපි හදපු form එකයි database එකයි link කරගන්න ඕනි. 
මේ ඒ දේ කරගන්න තියෙන තියෙන code එක.

 //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');

මෙතන phpblog කියන තැන ඔයාලගෙ database එකේ නම දාගන්න. 

form එකෙන් submit කරගත්ත data දැන් database එකට දාගමු.


mysql_query("insert into register(id,name,address,birthday,phone)VALUES('','$name','$address','$birthday','$phone')");

register කියන්නේ අපි හදාගත්ත table එකේ නම.

හරි දැන් form එකේ මොනාහරි type කරලා add click කරලා phpmyadmin ගිහින් table name එක click කරලා බලන්කෝ..... :)



මොනා හරි ගැටලුවක් තියෙනවා නම් comment එකක් දාන්න. ඊලග post එකෙන් බලමු මේ දාගත්ත values ටික display කරගන්නේ කොහොමද කියලා.


Tuesday, May 22, 2012

PHP අට්ටාලය ගහගමු.

මුලින්ම කියන්න තියෙන්නෙ web site එකක් කියන්නේ magic නෙවෙයි. ඒක හරියට ගඩොලින් ගඩොල තියලා හදපු ගෙයක් වගේ. ඉතින් ඒ ගේ පේන විදියට ලස්සනට හදාගන්න මුල ඉදලම හරියට හදන්න ඕනිනේ. ඉතින්  අපි මුල ඉදන් සරලව වැඩේ පටන් ගමුකෝ... තව දෙයක් .! තමන්ම ලියපු code එකක් run කරලා output එක දැක්කම පොඩි kick එකක්,  එහෙම නැත්තම් තමන් ගැන අභිමානයක් සතුටක් දැනෙනව නම් විතරක් මේවා කරන්න කියලයි මගේ නම් අදහස. නැත්තම් කාලේ නාස්ති කරගන්නැතුව දැන්ම වැඩේ අතැරලා දාන්න.

ඇත්තටම PHP කියන්නේ free download කරගන්න පුලුවන් එකක්. open source එකක්. ඔයාලා දන්නවා ඇති  ඕනම web site එකක් right click කරල view source ගියාම ඒකේ html, javascript වගේ code පෙන්නනවනේ. එහෙම වෙන්නේ ඒවා execute වෙන්නෙ browser එකේ නිසා. නමුත් php code එහෙම පේන්නෑ. ඒවා run වෙන්නේ web page එක host කරලා තියෙන server එකේ. ඒ කියන්නේ php run කරන්න අනිවා server එකක්ඔ  ඕනි කියන එකනේ සරලවම කිවොත්..

එතකොට web page  එකක් internet එකේ run කරන්න online  server එකක්  ඕනි වෙනවා. ඉතින් ඒකට online hosting servers තියෙනවා ඕන තරම්. Ex: http://www.bluehost.com/ .  හැබැයි ගෙවන්න  ඕනි.

ඉතින් ඔයාලට web site එකක් හදන්න  ඕනි කියමුකො phpත් දාලා. කොහොමද කරන්නේ? සල්ලි දීලා server එකක් ගන්නවද? ඔයාලට ඔයාගේම computer එකේ server එකක් run කරගන්න පුලුවන්. ඊට පස්සේ පුලුවන් web site එකක් ඔයාගේ com එකේ run කරවගෙන බලන්න. හැබැයි ඒක Internet එකේ පේන්නේ නෑ. එහෙම පේන්න නම් online server එකක් සල්ලි දීලා අරන් ඒ  server එකට upload කරන්න ඕනේ.

හරි දැනට මං කියන්නම් කොහොමද ඔයාලගේ computer එකේ local server එකක් හදාගන්නේ කියලා. තව පොඩි දෙයක් කියන්න අමතක වුනා. මං මේවා ඔයාලට කියලා දෙන්නේ ඔයාලට html, css ගැන පොඩි හරි දැනුමක් ඇති කියලා හිතාගෙන. එහෙම දැනුමක් නැත්තම් මුලින් ඒවා ඉගෙන ගන්න වෙනවා. ඒකට http://www.w3schools.com වගේ site වලින්  ඉගෙන ගන්න පුලුවන්.

මේ වැඩේට හොද software එකක් තියෙනවා WAMP කියලා. මුලින්ම http://www.wampserver.com site එකට ගිහින් අදාල එක download කරගෙන install කරගන්න.

මේක install කරලා run කරාට පස්සේ ඔයාලට පෙනෙයි යට task bar එකේ "W" අකුරක් ඇති. මේක අනිවා කොල පාට වෙන්න  ඕනි. නැත්තම් ඒකියන්නේ server එක ready නෑ කියන එකයි.

wamp install කරද්දි අපිට web site එක හදන්න ඕනි සියලු දේ install වෙනවා. wamp කියන අකුරු වලින් කියවෙන්නේ ඒවා තමයි. W කියන්නේ නම් windows කියන එක. A කියන්න apache කියන එක. ඒක තමයි server එක. M කියන්නේ MySql. මේක තමයි අපේ database එක. P කියන්නේ PHP කියන එක.




  • W - Windows
  • A - Apache
  • M - My SQL
  • P - PHP


හරි දැන් බලමු පොඩි code එකක් run කරලා. මුලින් බලන්න ඔයා wamp Install කරපු drive එකේ wamp කියලා folder එකක් ඇති. එකේ www කියලා folder එකක් ඇති. ඒ www  folder එකට තමයි ඔයා හදන file ඔක්කොම save කරන්න  ඕනි.



දැන් ඒකේ folder එකක් හදාගන්න කැමති නමකින්. මං හදනවා test කියලා. දැන් ඒ test folder එක ඇතුලට ගිහින් rightclick->new text document එකක් හදාගන්න.

ඊට පස්සේ ඒ file එකේ මේ code එක type කරන්න.

<?php

echo "success";

?>

දැන් save as යන්න. ඒකේ save as type එක All Files කරන්න. file name එක index.php කියලා දෙන්න. දැන් ok කරන්න.

හරි දැන් පහල තියෙන WAMP Logo එක left click කරන්න. එකෙන් localhost තෝරන්න.



 එතකොට ඔයාගේ browser එක open වෙලා wamp home page එක පෙන්නයි.



ඒකේ පහලින්ම ඇති  බලන්න your projects කියන තැන ඔයා www folder එකේ හදපු folder එකේ නම(test). ඒක click කරන්න. දැන් ඔයාට පේනවනම් success කියලා print වෙලා තියෙනවා ඔයා සාර්ථකයි.. :)


ඊලග post එකේන් බලමු අපි database එකට data දාන්නේ කොහොමද කියලා PHP වලින්...




මගේ මුල්ම Post එක.

මගේ නම නාමල්. මම ඔය කියන තරම් කාපරයෙක් නෙවෙයි ඉතින්. :P මට ඕනේ දන්න දේ කියලා දීලා නොදන්න දෙයක් දැනගන්න. සහයෝගය තමයි ඉතින්... :) කොහොමහරි ඉතින් දැනට තියෙන තාක්ෂණය ඔක්කොම දැනගෙන ඉවරයක් කරන්නත් බෑනේ.  :|

මං මේක වැඩකරු වගේ පටන් ගත්තට මං PHP ඉගෙන ගන්න පටන් අරන් මාස 7ක් විතර වෙන්නේ. ;)
ඉතින් තාම දන්නේ පොඩ්ඩයි. කොහොමහරි මං හිතන් ඉන්නේ අලුතෙන්ම PHP ඉගෙන ගන්න හිතන් ඉන්න අයට මුල ඉදන් ටික ටික post ටිකක් දාන්න. 

මොනා වුනත් elakiri එකේ Dhanuka Nilanjana සොහොයුරාට ස්තූති වෙන්න ඕනේ මාව දිරිමත් කරාට.

මං ගැන කිවොත් ඉතින් මං බදුල්ලේ ගමක කොල්ලෙක්. A/L Bio වලින් කරලා කොළඹ විශ්ව විද්‍යාලයට විද්‍යා පීඨයට ආවා. ඒකේ කරේ molecular biology කෝස් එක. degree එක ඉවර වුනා මගේ bio field එකට තිබ්බ සම්බන්දෙත් එහෙම්ම ඉවරයි. campus ගිය එකෙන් මං ලබා ගත්තේ හොද කෙල්ලක් හොයා ගත්ත එක තමයි.

කොහොමහරි bio degree එකට ඕන මංගල්‍යක් විද්දෙන් කියලා මං බැස්සා IT field එකට. වෙන කිසිම හේතුවක් නිසා නෙවෙයි ආසාව නිසා. අදට මං සතුටු වෙනවා මං ඉන්න තත්වෙ ගැන කවුරු මොනා කිවත්. ගොඩක් අය උදව් කරා මට උඩට එන්න. දැනට නම් තියෙන්නෙ දැනුම විතරයි. ඒ දදේ තමයි මේ බෙදා ගන්න යන්නේ.

හරි දැන් ඇති වගේ පස්සේ තව කතා කරමු. ඊලග post එකේ ඉදන් වැඩේ පටන් ගමු.