Uzay MySQL dize arama tatili

0 Cevap php

Ben bir müşteri siteye küçük bir AJAX özelliği eklemek için istendi ettik. Temelde 3 alanları ile MySQL tablo var:

  • kimlik
  • ürün
  • isim

Sitenin fikir kullanıcı "adını" yazmaya başlar, ve ürünlerin tuş vuruşlarını bir çift sonra ortaya olmasıdır. Benim sorgu şöyle:

$query = mysql_query("SELECT ürün FROM mytable WHERE isim LIKE '%".$search."%'");

Her şey bir boşluk "adı" olduğunda dışında çalışır. Örneğin ben "Coca Cola" adında bir isim varsa ben "Coca" yazdığınızda, komut başarıyla ürünü listeler, ama en kısa sürede boşluk yazın gibi, artık herhangi bir satır döndürür.

Ben bir çözüm için her yerde aradım. Ben uzay tür bir ayırıcı olarak yorumlanır anlıyorum, ama ben de ... bir boşluk ... olarak yer yorumlamak için veritabanı alabilirsiniz? Eğer değilse, ben başarmak istediğinizi yapmanın daha iyi bir yolu var mı?

EDIT:

Ben phpMyAdmin koştum ve aslında PHP bir şey olmalı inanmak beni neden, doğru sonuçlar verir. Tam script gkimlikecekseniz:

$search = $_GET['search'];
$already_echoed = array();

if (!ereg('[^A-Za-z0-9]', $search) && strlen($search) > 2) {

 $query = mysql_query("SELECT ürün FROM mytable WHERE isim LIKE '%".$search."%'");

 if (mysql_num_rows($query) > 0) {

  echo '<h4>Suggestions:</h4><ul>';

  while ($ürün = mysql_fetch_array($query)) {

   if (!in_array($ürün['ürün'], $already_echoed)) {
    $getProduct = mysql_query("SELECT isim, shortisim FROM ürüns WHERE kimlik='".$ürün['ürün']."'");
    $ürün2 = mysql_fetch_array($getProduct);

    echo '<li><a href="http://' . $ürün2['shortisim'] . '.mydomain.com">' . $ürün2['isim'] . '</a></li>';
    $already_echoed[] = $ürün['ürün'];
   }

  }

  echo '</ul>';

 }


}

0 Cevap