Ben var SQL çağrısı ile bir sorun yaşıyorum. Sonuçta, ben bir arama kutusundan bir AJAX çağrısı çalışan ve sonuçları ekrana dönen. Ben 5'e sonuçları görüntülenir sınırlamak ama sonuç toplam sayısı 5 aşıyorsa, başka bir yerde tüm görüntülemek için bağlantı sağlar. Ben sadece bir COUNT()
fıkra ekleyerek düşündüm COUNT()
benim while
öldürür, doğru maçlarda tam sayısını döndürmek yok iken, bu konuda dikkat çekmek ve olacaktır ifadesi ile ve sadece döngü ilk sonucunu döndürür. Ben çıkardığınızda count()
, her şey çalışıyor.
CODE
<?php
if(isset($_POST['word']) && $_POST['word'] != "")
{
$q=$_POST['word'];
try {
$db = new PDO('mysql:host=localhost;dbname=DB', 'USER', 'PW');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("SELECT COUNT(ID) as counter, ID, fname, lname FROM tablename WHERE fname LIKE ? or lname LIKE ? ORDER BY ID LIMIT 5");
$stmt->execute(array('%'.$q.'%', '%'.$q.'%'));
$foundrows = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
$db->commit();
}
catch (PDOException $e)
{
echo "There was a system DB error. <br>".$e->getMessage();
}
if(isset($foundrows) && $foundrows == 0) {
echo "<div class='display_box' align='left'>
No matching results found</div>";
} else {
while($row = $stmt->fetch()) {
$counter = $row['counter'];
$id = $row['ID'];
$fname = $row['fname'];
$lname = $row['lname'];
?>
<a href="#" style="text-decoration:none; color:#000;">
<div class="display_box" align="left">
<?php echo $fname; ?> <?php echo $lname; ?><br/>
</div></a>
<?php
}
if(isset($counter) && $counter > 5) {
?>
<a href="#" style="text-decoration:none; color:#000;">
<div class="display_box" align="left">
<?php echo (5-$counter)." additional matches found."; ?>
</div></a>
<?php
}
}
}
?>