Ben sonuç bir autosuggest / otomatik tamamlama için geri almak için aşağıdaki PHP kodu kullanıyorum. Sorun, bir önceki SQL sorgusu En son SQL sorgu daha veritabanından döndürmek için uzun sürerse eski sorgunun sonuçları autosuggest sonuçları kutusunda görüntülenir olmasıdır. Eğer Thomas aramaya başlarsa bu SQL sorgusu uzun sürerse Yani, Tho için sonuçlar gösterebilir. Yeni bir uygulamaya kez önceki sorguları iptal etmek, ya da en son sorgu kullanıldığından emin olmak için bir yol olup olmadığını merak ediyorum?
<?php
// begin XML output
$xmlStr = <<<XML
<?xml version='1.0' standalone='yes'?>
<authors>
XML;
// open database connection
$mysqli = new mysqli("localhost", "user", "pass", "library");
if (mysqli_connect_errno()) {
printf("Connect failed: %s
", mysqli_connect_error());
exit();
}
// retrieve author list matching input
// add to XML document
$q = $mysqli->real_escape_string($_GET['query']);
$sql = "SELECT AuthorName FROM author WHERE AuthorName LIKE '" . $q . "%' ORDER by AuthorName";
if ($result = $mysqli->query($sql)) {
while ($row = $result->fetch_row()) {
$xmlStr .= '<author name="' . $row[0] . '"></author>';
}
$result->close();
}
// clean up
// output XML document
$mysqli->close();
$xmlStr .= '</authors>';
header("Content-Type: text/xml");
echo $xmlStr;
?>