我無法從我的代碼生成正確的輸出,從MySQL數據庫動態列出記錄時遇到問題。 這是形式:使用ajax從mysql數據庫中列出記錄
<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>
這是JavaScript文件,該文件調用PHP文件,其中查詢所在位置:
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 } ?>
的問題是,如果我在3字母詞(「甲苯磺酰」)類型的輸出只有一個記錄。它應該輸出2條記錄。因爲在我的數據庫中有2個以'tos'開頭的記錄。它只輸出我添加的最新記錄。 當我這樣做:
SELECT * FROM prod_table WHERE PRODUCT LIKE'$pname%'
它使情況惡化。請幫忙。
這就是你的'SELECT'查詢真的被調用了嗎('LIKE'和'$ pname'之間沒有空格)?或者在粘貼問題時出現錯字? – 2010-11-07 03:03:59