代码之家  ›  专栏  ›  技术社区  ›  user225269

使用ajax列出mysql数据库中的记录

  •  0
  • user225269  · 技术社区  · 15 年前

    这是表格:

    <form action="lister.php" method="get" id="info" name="weboptions" class="lesser">
       <h2>List Products</h2>
        <input type="radio" name="xo" value="n" class="styled">Name<br/>
        <input type="radio" name="xo" value="c" class="styled">Category<br/>
        <input type="radio" name="xo" value="d" class="styled">Description
          <div id="dta-wrap" class="slider">
           <input type="text" id="neym" name="neym" onKeyUp="bypname(this.value)"   class="DEPENDS ON xo BEING n AND CONFLICTS WITH XO BEING d OR XO BEING c"/></span>
          </div><!--/#dta-wrap-->
       <div id="dta2-wrap" class="slider">
          <input type="text" id="c" name="c" onKeyUp="bycat(this.value)"  class="DEPENDS ON xo BEING c AND CONFLICTS WITH XO BEING d OR XO BEING n"/></span>
       </div><!--/#dta-wrap-->
    
        <div id="dta3-wrap" class="slider">
          <input type="text" id="dta3" name="dta3" onKeyUp="bydesc(this.value)"  class="DEPENDS ON xo BEING d AND CONFLICTS WITH XO BEING n OR XO BEING c"/></span>
       </div>
    <a href="adminpage.php"><input type="button" id="btn" name="back" value="back"></a>
    </form>
    <div id="resultcat"></div>
    

    function bydesc(str)
    {
    if (str=="")
      {
      document.getElementById("resultcat").innerHTML="";
      return;
      }  
    if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("resultcat").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","listerdesc.php?dta3="+str,true);
    xmlhttp.send();
    }
    
    function bypname(str)
    {
    if (str=="")
      {
      document.getElementById("resultcat").innerHTML="";
      return;
      }  
    if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("resultcat").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","listerpname.php?dta="+str,true);
    xmlhttp.send();
    }
    
    function bycat(str)
    {
    if (str=="")
      {
      document.getElementById("resultcat").innerHTML="";
      return;
      }  
    if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("resultcat").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","listercat.php?dta2="+str,true);
    xmlhttp.send();
    }
    

    这就是查询的位置(listerpname.php):

    <?php 
    if(!empty($_GET['dta'])){
    $pname=$_GET['dta'];  
    $result1=query_database("SELECT * FROM prod_table WHERE PRODUCT LIKE'%$pname%'", "onstor", $link);
    ?>
    
    <?php
    if(mysql_fetch_assoc($result1)==0){
        echo "<center><h3 id='wyt'>Your query produced no results..</h3></center>";
    }else{
    ?>          
    
    <center>        
    <table border="1">
    <thead>
        <tr>
        <th>PID</th>
        <th>PRODUCT</th>
        <th>CATEGORY</th>
        <th>DESCRIPTION</th>
    
        <th>QTY_ON_HAND</th>
        <th>REORDER_QTY</th>
     <th>DEALER PRICE</th>
        <th>SELL PRICE</th>
        </tr>
    </thead>
    
    <?php
    while($row=mysql_fetch_assoc($result1)) { 
    
    ?>
        <tbody>
                <tr>
            <td><a href="delprod.php?prodid=<?php echo $row['PID']; ?>"><?php echo $row['PID']; ?></td>
            <td><a href="updateprod.php?prodname=<?php echo $row['PRODUCT']; ?>" class="plain"><?php echo $row['PRODUCT']; ?></a></td>
    
            <td><?php echo $row['CATEGORY']; ?></td>
            <td><?php echo $row['P_DESC']; ?></td>
    
             <td><?php echo $row['QTYHAND']; ?></td>
             <td><?php echo $row['REORDER_LVL']; ?></td>
          <td><?php echo $row['B_PRICE']; ?></td>
             <td><?php echo $row['S_PRICE']; ?></td>
                </tr>
            </tbody>
    
    <?php } ?>
    <?php } ?>
    <?php } ?>
    

    当我这样做时:

    SELECT * FROM prod_table WHERE PRODUCT LIKE'$pname%'
    

    这使情况更糟。请帮忙。

    1 回复  |  直到 15 年前
        1
  •  4
  •   ryanlahue    15 年前

    问题似乎是,当您检查下一行中的结果时,您将光标移动了1,并丢弃了结果集中的第一条记录:

    if(mysql_fetch_assoc($result1)==0){
    

    你可能想用 mysql_num_rows 函数,以避免丢失结果集中的第一条记录。

    if(mysql_num_rows($result1)==0){