php / mysql arama sonuçlarını vurgulama

2 Cevap php

nasıl ben php kullanarak mysql sorgu arama sonuçlarını vurgulamak mı?

Bu benim [modified] kodu:

$search_result = "";

$search_result = $_GET["q"];

$result = mysql_query('SELECT cQuotes, vAuthor, cArabic, vReference FROM thquotes WHERE cQuotes LIKE "%' . $search_result .'%" ORDER BY idQuotes DESC', $conn)
  or die ('Error: '.mysql_error());


function h($s) {
    echo htmlspecialchars($s, ENT_QUOTES);
} 


?>

    <div class="caption">Search Results</div>
<div class="center_div">
<table>
    <?php while ($row= mysql_fetch_array($result)) { ?>
    <?php $cQuotes = preg_replace($search_result, "<div class='highlight'>".$search_result."</div>", $row['cQuotes']); ?>
        <tr>
            <td style="text-align:right; font-size:15px;"><?php h($row['cArabic']) ?></td>
            <td style="font-size:16px;"><?php h($cQuotes) ?></td>
            <td style="font-size:12px;"><?php h($row['vAuthor']) ?></td>
            <td style="font-size:12px; font-style:italic; text-align:right;"><?php h($row['vReference']) ?></td>
        </tr>
    <?php } ?>
</table>
</div>

2 Cevap

Eğer preg_replace () kullanabilirsiniz;, bu metin bir eşleşme bulur zaman eşleşen kelime etrafında vurgulamak bir sınıf ile bir div koyabilirsiniz. Daha sonra onu öne yapmak için vurgulamak sınıf bir arka plan rengini ve kenarlık eklemek istiyorum

preg_replace 3 parametreleri bekliyoruz;

  1. İlki aradığınız budur
  2. İkinci bir o değişti gereken budur
  3. Metin dizesi o aramak ve gelen değiştirmeniz gerekir

Bu nedenle, örneğin

<div class="center_div">
    <table>
    <caption>Search Results</caption>
    <?php while ($row= mysql_fetch_array($result)) { ?>
<?php $arabic = preg_replace("/".$search_result."/", "<div class='highlight'>".$search_result."</div>", h($row['cArabic'])); ?>
            <tr>
                <td style="text-align:right; font-size:15px;"><?php $arabic ?></td>
                <td style="font-size:16px;"><?php h($row['cQuotes']) ?></td>
                <td style="font-size:12px;"><?php h($row['vAuthor']) ?></td>
                <td style="font-size:12px; font-style:italic; text-align:right;"><?php h($row['vReference']) ?></td>
            </tr>
        <?php } ?>
    </table>
    </div>

Ben sadece Arapça için yaptım ama sen de cQuotes, vAuthor ve Vreferans için bunu yapmak gerekebilir.

Sen adlandırılan bir JavaScript kütüphanesi kullanarak yapabilirsiniz HiLite. Bu oldukça iyi çalışıyor.