【问题标题】:How to do autocomplete and get column data from mysql如何进行自动完成并从 mysql 获取列数据
【发布时间】:2016-01-05 07:13:30
【问题描述】:

autoNameSearch.php

<?php     
        $conn = mysql_connect("localhost","root","1234");
        if(!$conn)
        {
            die('Could not connect : ' . mysql_error());
        }
         mysql_select_db("ProductDetails",$conn) or die("Could not select database");

         //           $searchTag = array(); 
        $sql = mysql_query("select shortSearch from proddetail");


        while($row = mysql_fetch_assoc($sql)) {

            $search[]= '"'.$row['shortSearch'].'"';


            }

productSearch.php

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">   
<script src="//code.jquery.com/jquery-1.10.2.js"></script>   
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>   
<!--<link rel="stylesheet" href="/resources/demos/style.css">-->

  <script type="text/javascript" >  var searchTags = new Array( <?php implode(',', $search)?>);   for(var i=0; i<searchTags.length;i++){
      searchTags.toString();
      document.write("contains: " +searchTags[i]+ "<br>");   }   document.write = searchTags;
    $(function(){
        searchTags  

        $("#key").autocomplete({
      source: searchTags
    });   });   </script>
    <body>

        <form method="post" action="displayProducts.php?go" id="searcform" target="display">
            <div class="menubar" id="leftNavMenuBar">
                            <a href="#" class="hashAdded" style="color: #605f5d">
                    <i></i>
                    <i></i>
                    <i></i>
                    <span>choose</span></a></div><span id="bms">BMS</span><span id="marketing">MARKETING</span>
                    <input type="search" name="key" id="key" value="" class="autosearch">
            <input type="submit" name="submit" value="FIND">
        </form>
        </p>

    </body>

【问题讨论】:

  • 我想从 mysql 列中获取数据并在 jquery 中获取该数组以进行自动完成...请帮助我 ....
  • 只是一个通知:考虑停止使用mysql_,因为它已被弃用,并开始使用PDOmysqli

标签: php jquery mysql sql


【解决方案1】:

将您的 autoNameSearch.php 文件更改为如下内容:

<?php     
    $conn = mysql_connect("localhost","root","1234");
    if(!$conn)
    {
        die('Could not connect : ' . mysql_error());
    }
    mysql_select_db("ProductDetails",$conn) or die("Could not select database");

     //           $searchTag = array(); 
    $sql = mysql_query("select shortSearch from proddetail");

    $myResults = array();
    while($row = mysql_fetch_assoc($sql)) {
        //$search[]= '"'.$row['shortSearch'].'"';
        array_push($myResults, $row['shortSearch']);
    }

    echo json_encode($myResults);

这会将您的数据存储在 PHP 数组中,然后您使用 PHP json_encode 函数将其转换为 autoComplete 可以读取的 json。

【讨论】:

    【解决方案2】:

    您可以简单地做(我没有看到您如何在脚本中包含 autoNameSearch.php):

    <script type="text/javascript">  
      $(function(){
        $("#key").autocomplete({ /* MAKE SURE YOUR INPUT HAS key ID TAG ON IT */
          source: "autoNameSearch.php" /* THE FILE WHERE TO GET THE DATA */
        });
      });
    </script>
    

    您的autoNameSearch.php 文件(我将其更改为mysqli_*,因为mysql_* 已经是deprecated)。

    我还注意到您提供的代码是您没有在autoNameSearch.php 文件中打印结果。所以应该是这样的:

    <?php     
    
      /* ESTABLISH CONNECTION */
      $conn = new mysqli("localhost", "root", "1234", "ProductDetails");
    
      /* CHECK CONNECTION */
      if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
      }
    
      if($stmt = $conn->prepare("SELECT shortSearch FROM proddetail")){ /* CHECK PREPARED STATEMENT */
        $stmt->execute(); /* EXECUTE QUERY */
        $stmt->bind_result($shortsearch); /* BIND THE RESULT TO THIS VARIABLE */
        while($stmt->fetch()){ /* FETCH ALL RESULTS */
          $search[] = $shortsearch; /* STORE ALL RESULTS TO THIS ARRAY VARIABLE */
        } /* END OF WHILE LOOP */
        $stmt->close();
      } /* END OF PREPARED STATEMENT */
    
      echo json_encode($search); /* PRINT THE RESULT IN JSON */
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2018-10-23
      • 2012-07-20
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      相关资源
      最近更新 更多