通过组合3个mysql表

时间:2016-08-03 12:28:21

标签: javascript php mysql json ajax

我遇到以表格格式显示数据库表的问题,如下所示:

enter image description here

在我向您介绍我使用的代码之前,我想描述一下情况(请记住,我在编程方面没有进步,而且我在那里找到了一个示例代码......在某处)。< / p>

我有3张不同的牌桌。它们如下:

表1: id |国家| ID_VALUE

表2: id |国家| id_value |繁殖

表3: id |老板|联系| ID_VALUE

正如您所看到的,我正在使用id_value参数来连接它们。

我设法将dropdown-menu1连接到表1后,我可以选择一个选项并自动过滤表2,这样我就可以从(过滤的)下拉菜单2中选择一些内容。

问题: 下面我有一个按钮,应该执行以下操作: 在访问者/用户做出选择并且表1/2被过滤后,单击按钮并在div内或其他内容时,显示表3中的相应结果。 / p>

现在这里是代码:

main_php: (以下代码在head -tags中使用)

  <script type="text/javascript">
    function AjaxFunction()
    {
   var httpxml;
    try
     {
      // Firefox, Opera 8.0+, Safari
     httpxml=new XMLHttpRequest();
     }
     catch (e)
    {
    // Internet Explorer
      try
                {
             httpxml=new ActiveXObject("Msxml2.XMLHTTP");
                }
        catch (e)
                {
            try
        {
        httpxml=new ActiveXObject("Microsoft.XMLHTTP");
         }
            catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
        }
   }
 function stateck() 
 {
  if(httpxml.readyState==4)
  {
 //alert(httpxml.responseText);
 var myarray = JSON.parse(httpxml.responseText);
 // Remove the options from 2nd dropdown list 
  for(j=document.testform.subcat.options.length-1;j>=0;j--)
 {
 document.testform.subcat.remove(j);
 }


    for (i=0;i<myarray.data.length;i++)
   {
  var optn = document.createElement("OPTION");
  optn.text = myarray.data[i].breed;
   optn.value = myarray.data[i].id_values;  // You can change this to subcategory 
    document.testform.subcat.options.add(optn);

  } 
  }
 } // end of function stateck
 var url="connect_data/dd.php";
 var cat_id=document.getElementById('s1').value;
 url=url+"?cat_id="+cat_id;
 url=url+"&sid="+Math.random();
 httpxml.onreadystatechange=stateck;
 //alert(url);
 httpxml.open("GET",url,true);
 httpxml.send(null);
   }
</script>

在体内:

    <form name="testform" method='POST' action='mainck.php'>
    Name:<input type=text name=fname>
    <?Php
    require "connect_data/config.php";// connection to database 

     echo "<br>Select Category first  <select name=cat id='s1'        onchange=AjaxFunction();>
     <option value=''>Select One</option>";

      $sql="select DISTINCT id_values, country from the_countries ORDER BY country"; // Query to collect data from table 

    foreach ($dbo->query($sql) as $row) {
    echo "<option value=$row[id_values]>$row[country]</option>";
    }
    ?>
   </select>
   <br>
   Select Subcategory 
       <select name=subcat id='s2'>

   </select><br><input type=submit value=submit>
   </form>

使用的dd.php (&lt; -this php基本上从第一个下拉菜单获取数据,将其连接到第二个,然后返回代码转到main.php填充来自表2的过滤数据的第二个下拉菜单。

   <?Php
   @$cat_id=$_GET['cat_id'];
  //$cat_id=2;
 /// Preventing injection attack //// 
  if(!is_numeric($cat_id)){
 echo "Data Error";
  exit;
    }
   /// end of checking injection attack ////
  require "config.php";

  $sql="select DISTINCT breed,id_values from breeds_list where id_values='$cat_id' ORDER BY breed";
  $row=$dbo->prepare($sql);
  $row->execute();
  $result=$row->fetchAll(PDO::FETCH_ASSOC);

  $main = array('data'=>$result);
  echo json_encode($main);
  ?>

最后,完成所有操作后,根据示例代码,一切都应该转到一个名为的文件 mainck.php 并且是以下一个(&lt; - 请注意:这一部分我根本没碰过,因为这是我撞墙的地方我不喜欢“知道如何继续”。

<!doctype html public "-//w3c//dtd html 3.2//en">



  <body >

   <?Php

  echo "\$_POST['fname'] = $_POST[fname]<br>
   \$_POST['cat'] = $_POST[cat]<br>
  \$_POST['subcat'] = $_POST[subcat]
  ";

    /*
  while (list ($key,$val) = each ($_POST)) {
 echo "\$$key = $val";
 echo "<br>";
 } 
  */
  ?>

 <br><INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);">

 </body>

总而言之,我想要的只是点击那个血腥按钮并从表3中获取相应的数据(在表1和表2之后已经过滤)。

0 个答案:

没有答案