التخطي إلى المحتوى الرئيسي

using AJAX and PHP with a MYSQL database to show the Left and Right Tree

http://www.weberdev.com/get_example-4605.html
This example is using AJAX and PHP with a MYSQL database to show the Left and Right Tree. I already use this code on the network business companies where they have a member and the member should have to create his other sub member on his Left or right and other member as well.

Also i have enclose "mysql database connectivity class version 1.3" with new function


Hope you like this example, see attached file above.



tree1.php









<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tree Structure </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="scripts1.js"></script>
</head>

<body>
<?php

   
include ("include/host_conf.php");
    include (
"include/mysql.lib.php");
   
$obj=new connect();
    include (
"functions.php");
   
$sn=1; // You can change this value to see the tree related to this member
   
if(empty($sn)) {
       
$sn=1;
    }
   
$sql="SELECT * FROM tbl_tree WHERE id=$sn";
   
main_box($sql); ?> </body>
</html>




scripts1.js



var xmlHttp
var id
function showHint(str, div){
    if (str.length > 0){
        var url=str
        id = div

//        alert(id)
        xmlHttp=GetXmlHttpObject(stateChanged)
        xmlHttp.open("GET", url , true)
        xmlHttp.send(null)
    stateChanged()
    }
    else{
        document.getElementById(id).innerHTML=""
    }
}

function stateChanged() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
        document.getElementById(id).innerHTML=xmlHttp.responseText
    }
}

function GetXmlHttpObject(handler){
    var objXmlHttp=null

    if (navigator.userAgent.indexOf("Opera")>=0){
        alert("This example doesn't work in Opera")
        return
    }
    if (navigator.userAgent.indexOf("MSIE")>=0){
        var strName="Msxml2.XMLHTTP"
        if (navigator.appVersion.indexOf("MSIE 5.5")>=0){
            strName="Microsoft.XMLHTTP"
        }
        try{
            objXmlHttp=new ActiveXObject(strName)
            objXmlHttp.onreadystatechange=handler
            return objXmlHttp
        }
        catch(e){
            alert("Error. Scripting for ActiveX might be disabled")
            return
        }
    }
   
    if (navigator.userAgent.indexOf("Mozilla")>=0){
        objXmlHttp=new XMLHttpRequest()
        objXmlHttp.onload=handler
        objXmlHttp.onerror=handler
        return objXmlHttp
    }
}




functions.php

<?php /*
    This is the main file of this tree project
    here in this file the DIV is created according to the member ID and it is concanate to the placement_type as well
    for eg if the member id is 1 and the placement type is L then the div id = 1L
   
    This page is called from the Tree1.php for first time
    and it will show the below table with 2 respected links L and R (only if he had a sub member)
   
    and when click on this 2 links they will call javascript function named "showhint" with URL and the ID of the member and DIV ID (1L or 1R)
   
        well this showhint function is in script1.js file it will call the ajaxreturn.php file along with URL and the Div ID
       

       
*/
function main_box($sql=null){
    global
$obj;
   
$obj->query($sql);
    while (
$result = $obj->query_fetch(1)){
       
$id=$result['id'];
       
$name=$result['name'];
       
$pid=$result['parent_id'];
       
$lr=$result['placement_type'];
    }
?>     <table width="100%" border="0" align="center" cellpadding="1" cellspacing="1" bordercolor="#CCCCCC">
      <tbody>
        <tr>
          <td width="50%" valign="top">&nbsp;</td>
          <td width="100" valign="top">&nbsp;</td>
          <td width="100" valign="top">&nbsp;</td>
          <td width="50%" valign="top">&nbsp;</td>
        </tr>
        <tr>
          <td width="50%">&nbsp;</td>
          <td align="center" colspan="2" style="border:1px solid #ffcc99;" nowrap> &nbsp;
                  <?php echo $name; ?>           </td>
          <td valign="top" width="50%">&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td valign="top" style="border-bottom:1px solid #ffcc99;">&nbsp;
              <?php
                $sql
="SELECT * FROM tbl_tree WHERE parent_id=$id AND placement_type='L'";
               
$obj->query($sql);
                while (
$result = $obj->query_fetch(1)){
                   
$left=true;
                }
                if (
$left){
                   
$leftCount=$leftCount+1;
                   
$idl=$id."l";
                    echo
"<a href=# onclick=\"showHint('ajaxreturn.php?id=$id&lr=L', '$idl');\"><b>  L  </b> </a> &nbsp;&nbsp;";

                }
                           
           
?>          </td>
          <td valign="top" style="border-left:1px solid #ffcc99;border-bottom:1px solid #ffcc99;"> &nbsp;
              <?php
                $sql
="SELECT * FROM tbl_tree WHERE parent_id=$id AND placement_type='R'";
               
$obj->query($sql);
                while (
$result = $obj->query_fetch(1)){
                   
$right=true;
                }
                if (
$right){
                   
$rightCount=$rightCount+1;
                   
$idr=$id."r";
                    echo
"<a href=# onclick=\"showHint('ajaxreturn.php?id=$id&lr=R', '$idr');\"> <b> R  </b></a> &nbsp;";

                }
                           
           
?>          </td>
          <td width="50%" valign="top">&nbsp;</td>
        </tr>
        <tr>
          <td valign="top" align="middle" colspan="2"><div id="<?php echo $idl; ?>">&nbsp;</div></td>
          <td valign="top" align="middle" colspan="2"><div id="<?php echo $idr; ?>">&nbsp;</div></td>

        </tr>
      </tbody>
</table>
<?php } // function Close ?>   




db_tree.txt

-- phpMyAdmin SQL Dump
-- version 2.6.0-pl3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 16, 2007 at 08:15 PM
-- Server version: 4.1.8
-- PHP Version: 5.0.3
--
-- Database: `db_tree`
--

-- --------------------------------------------------------

--
-- Table structure for table `tbl_tree`
--

CREATE TABLE tbl_tree (
  id int(11) NOT NULL auto_increment,
  name varchar(50) NOT NULL default '',
  parent_id int(11) NOT NULL default '0',
  placement_type char(1) NOT NULL default '',
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tbl_tree`
--

INSERT INTO tbl_tree (id, name, parent_id, placement_type) VALUES (1, 'Suraj Thapaliya', 0, '');
INSERT INTO tbl_tree (id, name, parent_id, placement_type) VALUES (2, 'Janaki Thapaliya', 1, 'L');
INSERT INTO tbl_tree (id, name, parent_id, placement_type) VALUES (3, 'Sujan Thapaliya', 1, 'R');
INSERT INTO tbl_tree (id, name, parent_id, placement_type) VALUES (4, 'Kamal Thapa', 2, 'L');




ajaxreturn.php

<?php
   
include ("include/host_conf.php");
    include (
"include/mysql.lib.php");
   
$obj=new connect();
    include(
"functions.php");
   
$sql="SELECT * FROM tbl_tree WHERE parent_id=".$_GET['id']." AND placement_type='".$_GET['lr']."'";
   
main_box($sql); ?>




mysql.lib.php

<?php /*******************
Mr. Suraj Thapaliya
PHP Programmer
http://www.surajthapaliya.com.np
version 1.3
*/
class connect {
    var
$Host = C_DB_HOST;            // Hostname of our MySQL server
   
var $Database = C_DB_NAME;        // Logical database name on that server
   
var $User = C_DB_USER;            // Database user
   
var $Password = C_DB_PASS;        // Database user's password
   
var $Link_ID = 0;                // Result of mysql_connect()
   
var $Query_ID = 0;                // Result of most recent mysql_query()
   
var $Record    = array();            // Current mysql_fetch_array()-result
   
var $Row;                        // Current row number
   
var $Errno = 0;                    // Error state of query
   
var $Error = "";

    function
halt($msg)
    {
        echo(
"</TD></TR></TABLE><B>Database error:</B> $msg<BR>\n");
        echo(
"<B>MySQL error</B>: $this->Errno ($this->Error)<BR>\n");
        echo
"Session halted.";
        return
$this->Error;
    }

    function
connect()
    {
        if(
$this->Link_ID == 0)
        {
           
$this->Link_ID = mysql_connect($this->Host, $this->User, $this->Password);
            if (!
$this->Link_ID)
            {
               
$this->halt("Link_ID == false, connect failed");
            }
           
$SelectResult = mysql_select_db($this->Database, $this->Link_ID);
            if(!
$SelectResult)
            {
               
$this->Errno = mysql_errno($this->Link_ID);
               
$this->Error = mysql_error($this->Link_ID);
               
$this->halt("cannot select database <I>".$this->Database."</I>");
            }
        }
    }

    function
query($Query_String)
    {
       
$this->connect();
       
$this->Query_ID = mysql_query($Query_String,$this->Link_ID);
       
$this->Row = 0;
       
$this->Errno = mysql_errno();
       
$this->Error = mysql_error();
        if (!
$this->Query_ID)
        {
           
$this->halt("Invalid SQL: ".$Query_String);
        }
        return
$this->Query_ID;
    }
   
function
query_fetch($fetch=0)
{
    if(
$fetch==0) {
       
$result=@mysql_fetch_assoc($this->Query_ID);
    } else {
       
$result=@mysql_fetch_array($this->Query_ID);
    }
   
    if(!
is_array($result))
    return
false;
   
$this->total_field=mysql_num_fields($this->Query_ID);

    foreach(
$result as $key=>$val){
       
$result[$key]=trim(htmlspecialchars($val));
    }
     return
$result;
}

function
query_fetch_tr($css='',$col_name='no',$update='no',$delete='no',$add='no',$not_show='no',$total_rows=0)
{
    if(!empty(
$not_show)) {
       
$val=0;
     } else {
       
$val=1;
     }
   
// For Add

       
if($add=="yes") {
            if(!empty(
$update))  $c=$c+1;
            if(!empty(
$delete)) $c=$c+1;
           
$colspan=$this->num_field()+$c;
           
$tr_output="<tr><td colspan='$colspan'><a href='?mode=add'> Add New Data</a> </tr> ";
        }
   
   
// End of Add
   
if($col_name=="yes") {
       
$tr_output.="<tr>";
        for(
$j=$val;$j<$this->num_field();$j++) {
           
$tr_output.="<th>".ucwords(strtolower($this->get_field_name($j)));
        }
       
// For Update
       
if($update=="yes") {
           
$addNewTD="<th>Update</th>";
        } else {
           
$addNewTD="";
        }
       
// End of Update
        // For Delete
       
if($delete=="yes") {
           
$addDelTD="<th>Delete</th>";
        } else {
           
$addDelTD="";
        }
       
       
// End of Delete
       
$tr_output.="$addNewTD $addDelTD </tr>";
    }
    if(
$total_rows==0) {
        echo 
$tr_output;
    }
   
    while(
$result=$this->query_fetch(1))
    {
       
        if(
is_array($result))
        {
            if(
$css!="")
            {
               
$css_val="class=".$css;
            }
           
$tr_output.="<tr $css_val>";
           
            for(
$i=$val;$i<$this->num_field();$i++)
            {
                if(
$result[$i]=="")
                {
                   
$result[$i]="&nbsp;";
                }
               
$tr_output.="<td>".$result[$i]."</td>";
            }
            if(
$update=="yes") {
               
$tr_output.="<td><a href='?sn=$result[0]&mode=update'>Update</a></td>";
            }
            if(
$delete=="yes") {
               
$tr_output.="<td><a href='?sn=$result[0]&mode=delete'> Delete</a> </td>";
            }
           
$tr_output.="</tr>";
        }
            echo
$tr_output;
            unset(
$tr_output);
    }
}


function
paging($sqlPaging="",$offSet=0) {
   
$sqlPaging=$sqlPaging;
   
$eu = ($start - 0);
   
$limit = $offSet;                             
   
$a = $eu + $limit;
   
$back = $eu - $limit;
   
$next = $eu + $limit;
   
$mainQuery=$sqlPaging." limit $eu,$limit";
   
$this->query($mainQuery);
   
$nume=$this->num_rows();
echo
"<table align = 'right' width='500' border=0>
<tr>
<td  align='right' width='50%'>"
;
if(
$back >=0) {
print
"<a href='$page_name?start=$back'><font face='arial' size='1'> << </font></a>";
}
echo
" Page "; $i=0; $l=1;
for(
$i=0;$i < $nume;$i=$i+$limit){
    if(
$i <> $eu){
        echo
" <a href='$page_name?start=$i'><font face='arial' size='1'>$l</font></a> ";
    } else {
        echo
"<font face='arial' size='1' color=red> &nbsp;$l</font>";
    }     
   
$l=$l+1;
    echo
"&nbsp;";
}
    if(
$a < $nume) {
        print
"<a href='$page_name?start=$next'><font face='arial' size='1'> >> </font></a>";
    }
    echo
"</tr></table>";

   
}

function
num_field()
{
    return
mysql_num_fields($this->Query_ID);
}
function
get_field_name($i)
{
    return
mysql_field_name($this->Query_ID,$i);
}

/*
function fetch_field()
{
    return mysql_fetch_field($this->Query_ID,2);
}
*/
function next_record()
    {
       
$this->Record = mysql_fetch_array($this->Query_ID);
       
$this->Row += 1;
       
$this->Errno = mysql_errno();
       
$this->Error = mysql_error();
       
$stat = is_array($this->Record);
        if (!
$stat)
        {
           
mysql_free_result($this->Query_ID);
           
$this->Query_ID = 0;
        }
        return
$this->Record;
    }

    function
num_rows()
    {
        return
mysql_num_rows($this->Query_ID);
    }
    function
maxRow($tablename,$field,$condition)
    {
       
$sql="select max($field) from $tablename $condition";
       
$this->query($sql);
       
$result=@mysql_fetch_array($this->Query_ID);
        return
$result[0];
    }
    function
affected_rows()
    {
        return
mysql_affected_rows($this->Link_ID);
    }

    function
optimize($tbl_name)
    {
       
$this->connect();
       
$this->Query_ID = @mysql_query("OPTIMIZE TABLE $tbl_name",$this->Link_ID);
    }

    function
clean_results()
    {
        if(
$this->Query_ID != 0) mysql_free_result($this->Query_ID);
    }

    function
close()
    {
        if(
$this->Link_ID != 0) mysql_close($this->Link_ID);
    }
}
?>




host_conf.php

<?php
    $host
="host name";
       
$user_name="user name";
       
$password="password";
   
$db="db_tree";


       
define("C_DB_HOST",$host);
       
define("C_DB_USER",$user_name);
       
define("C_DB_PASS",$password);
       
define("C_DB_NAME",$db); ?>

تعليقات

المشاركات الشائعة من هذه المدونة

تعليم النوتة الموسيقية | شرح طريقة كتابة المازورة وعلامات التحويل

  تعليم النوتة الموسيقية | شرح طريقة كتابة المازورة وعلامات التحويل 69,361 زيارة نتناول تعليم طريقة كتابة النوتة الموسيقية، وشرح كيفية كتابة علامات النغمات على المدرج الموسيقي، والتعريف بالمازورة وأشكالها، وشرح علامات التحويل وعلامات السكوت وغيرها. تعليم النوتة الموسيقية النوتة الموسيقية: هي وسيلة حفظ الألحان وتوزيعاتها، وشكل النوتة ثابت ومحدد بخمسة أسطر، تسمى مدرج، فالسلم الموسيقى متدرج من أسفل لأعلى. المدرج الموسيقي وتكتب النغمات على السطور وما بين السطور، وموضع كل نغمة لها مكان ثابت على المدرج لا يتغير. فأول سطر من أسفل مخصص لنغمة (مي) ويسمى باسم النغمة، والسطر الثاني من أسفل مخصص لنغمة (صول) ويسمى باسمها. ومواضع النغمات تكتب على المدرج بالشكل التالي. السلم الموسيقي | المقامات الموسيقية العربية الأزمنة الموسيقية وطريقة كتابتها: الزمن هو طول النغمة، أي الوقت الذي تستغرقه في أداءها، وفي علوم الموسيقى لكل زمن وحدة قياس، وشكل يعبر عنه. مثال: دم ، دم ، دم ، دم هذا إيقاع مكون من 4 أزمنة (زمن رباعي) وعند أداء 4 نغمات في هذا الزمن الرباعي، (مثلا: دو، ري، مي، فا)، فهذا يعني أن مدة النغمة الو

نسخ مقاطع اليوتوب

LISTADO DE PAGINAS PARA BAJAR VIDEOS DE yOUTUBE: Como encontre post con links vencidos, recopile estos que estan funcionando 100% http://keepvid.com/ http://www.kcoolonline.com/ http://www.savevid.com/ http://www.vidgrab.com/ http://online.movavi.com/?mode=url http://vixy.net/ http://www.zamzar.com/url/ http://www.forinside.com/ http://media-convert.com/conversion/ http://www.down-tube.com/ http://viddownloader.com/ http://saveyoutube.com/ http://www.zamzar.com/ http://clipnabber.com/ http://www.mediaconverter.org/ http://www.force-download.es/ http://www.videoscop.com/ Programa para convertira a muchos formatos de video: (Muy completo) http://www.file serve.com/file/b7kCaXg Descarguenlo aca: . Fuentes de Información nonecesitountecnico.blogspot.com/2011/09/lista-de-paginas-para-descargar-videos.html

جمل 100 حكمة 1

اجمل 100 حكمة 1- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام. 2- لا يحزنك أنك فشلت مادمت تحاول الوقوف على قدميك من جديد . 3- كلما ازدادت ثقافة المرء ازداد بؤسه. 4- سأل الممكن المستحيل : أين تقيم ؟ فأجابه في أحلام العاجز. 5- إن بيتا يخلو من كتاب هو بيت بلا روح. 6- الألقاب ليست سوى وسام للحمقى والرجال العظماء ليسوا بحاجة لغير اسمهم. 7- نحن لا نحصل على السلام بالحرب وإنما بالتفاهم. 8- إذا اختفى العدل من الأرض لم يعد لوجود الإنسان قيمة. 9- ليست السعادة في أن تعمل دائما ماتريد بل في أن تريد ما تعمله. 10- إن أسوأ ما يصيب الإنسان أن يكون بلا عمل أو حب. 11- الحياء جمال في المرأة وفضيلة في الرجل. 12- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك. 13- الصداقة بئر يزداد عمقا كلما أخذت منه. 14- الابتسامة كلمة طيبة بغير حروف. 15- لا تفكر في المفقود حتى لا تفقد الموجود. 16- من قنع من الدنيا باليسير هان عليه كل عسير. 17- الكلمة الطيبة جواز مرور إلى كل القلوب. 18- إذا ازداد الغرور..نقص السرور. 19- الضمير المطمئن خير وسادة للراحة. 20- من يزرع المعروف يحصد الشكر. 21- البستان الجميل لا يخلو