Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Usuwanie zduplikowanych wierszy z tablicy
-Mesajah-
post
Post #1





Goście







Witam,

Mam taki kodzik:

  1. $query = $_GET['query']." ".$_GET['field_name']." LIKE '".mysql_real_escape_string($input)."%'";
  2.  
  3. if($limit > 0) $query .= " LIMIT $limit";
  4.  
  5. $result = mysql_query($query, $link);
  6.  
  7. while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  8. $row2=$row[$_GET['field_name']];
  9. $row2 = str_replace('-', '', $row2);
  10. $aResults[] = array( "id"=>0,"value"=>strtolower($row2));
  11. }



W $aResults[] (po translacji strlower) pojawiają mi się zdublowane rekordy.
Chciałbym pozbyć się wszystkich powtórzeń i zostawić tylko unikalne elementy.
Jak to zrobić najlepiej ?

BTW A czy można w zapytaniu użyć distincta który jest case insensitive ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Noidea
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

Ostrzeżenie: (0%)
-----


Sprawdź jaki masz metodę porównywania tekstu ustawioną dla tej kolumny. Jeśli kończy się na "_ci" (np. utf8_general_ci), to jest case insensitive. Jeśli kończy się na "_cs" albo "_bin" (np. latin1_general_cs, utf8_bin) to jest case sensitive.

Metodę porównywania napisów kolumny możesz zmienić przez ALTER TABLE, albo zdefiniować bezpośrednio w zapytaniu:
  1. SELECT DISTINCT tekst COLLATE utf8_general_ci FROM tabela WHERE tekst LIKE "%aaa%"


Ale pamiętaj, że DISTINCT odnosi się do całego wiersza, więc jeśli przy okazji pobierasz jakieś ID, czy inne kolumny, to może nie działać jakbyś się tego spodziewał.


PS. Zabezpieczenie w postaci mysql_real_escape_string( $input ), podczas gdy większa część zapytania pochodzi bezpośrednio z $_GET wygląda tak:
http://3.bp.blogspot.com/_6B8tPuW7TwQ/TQim...0/peclogate.jpg
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 07:14