Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> WIELKIE i małe litery
NortoN
post 20.04.2002, 06:32:51
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.04.2002
Skąd: Łowicz

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


mam zapytanie SELECT, ale ono mi wybiera każdy rekord bez sprawdzania wielkości liter a jak wpiszę hasło małymi literami a ktoś inny to samo dużymi to wychodzi że są dwa takie same wpisy przy SELECT

jak rozróżniać małe i WIELKIE litery rolleyes.gif

-------------------------
pozdrawiam NortoN
Go to the top of the page
+Quote Post
kurtz
post 20.04.2002, 11:01:59
Post #2





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
jak  wpiszę  hasło  małymi  literami  a  ktoś  inny  to  samo  dużymi  to  wychodzi  że  są  dwa  takie  same  wpisy  przy  SELECT
sprawdz typ tego pola oraz czy aby na pewno nie masz ustawionego typu binary.

-> http://sunsite.icm.edu.pl/mysql/doc/C/H/CHAR.html


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
NortoN
post 20.04.2002, 11:47:16
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.04.2002
Skąd: Łowicz

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


Witaj

Miałem ustawiony typ VARCHAR wielkość pola (12) zmieniałem na TINYTEXT, na TEXT ale dalej to samo, a sprawdzam w programie phpMyAdmin, atrybutu nie ustawiam

stworzyłem sobie taki test i to samo nie rozpoznaje wielkości liter :cry:

CREATE TABLE klienci (
klientID int(9) NOT NULL auto_increment,
login varchar(12),
login1 tinytext,
login2 text,
PRIMARY KEY (klientID),
FULLTEXT KEY login1 (login1)
)
Go to the top of the page
+Quote Post
kurtz
post 20.04.2002, 11:52:08
Post #4





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
Witaj
................


podalem adres url. nie dla ozdoby.


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
NortoN
post 20.04.2002, 12:16:07
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.04.2002
Skąd: Łowicz

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


no ale tam przecież nic kompletnie nie ma, są typy char, varchar, text tinytext, wszystkie zostały uzyte w tabeli jak widac powyżej i nic dalej nie rozpoznaje w żadnym typie :cry:
Go to the top of the page
+Quote Post
kurtz
post 21.04.2002, 09:45:50
Post #6





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
no ale tam przecież nic kompletnie nie ma


bzdura. nie klam.

Cytat
Values in CHAR and VARCHAR columns are sorted and compared in case-insensitive fashion, unless the BINARY attribute was specified when the table was created.


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
NortoN
post 21.04.2002, 10:32:35
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.04.2002
Skąd: Łowicz

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


sorry kurtz :wink:

już załapałem, aby było mozliwe rozróżnianie dane pole musi miec atrubut BINARY lub bezpośrednio przy select moża go podać

dzięki i sory że nie załapałem od razu.


pozdrawiam NortoN
Go to the top of the page
+Quote Post
roobik
post 6.08.2007, 10:02:43
Post #8





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Ponieważ temat już jest, a w tej kwestii zdaje się jest jeszcze trochę do zrobienia, to postanowiłem go nieco odświeżyć.
Otóż na stronie mam wyszukiwarkę, do której dodaję poszczególne elementy (by szukała w całym serwisie). Do tej pory nie miałem problemów. Teraz pojawił się "mały" problem. Zacznę od struktury tabeli:
  1. CREATE TABLE `k` (
  2. `id` int(9) NOT NULL AUTO_INCREMENT,
  3. `data_w` date NOT NULL DEFAULT '0000-00-00',
  4. `html` tinyint(1) NOT NULL DEFAULT '0',
  5. `tyt` varchar(255) NOT NULL DEFAULT '',
  6. `w` blob NOT NULL,
  7. UNIQUE KEY `date` (`data_w`),
  8. UNIQUE KEY `id` (`id`)
  9. ) TYPE=MyISAM AUTO_INCREMENT=255 ;

Napisałem w tym temacie, gdyż tylko tu znalazłem ciekawą informację:
Cytat(kurtz)
sprawdz typ tego pola oraz czy aby na pewno nie masz ustawionego typu binary

pole w jest typu blob o atrybucie BINARY
I teraz tak: Jak wpisuję słowo z dużej litery, czyli dokładnie w taki sposób, w jaki jest wpisane do rekordu) wyświetla się i jest OK. Ale jak już wpiszę z małej litery - wyników brak.
Jak więc wyciągnąć dane z tego typu pola wraz z rozróżnieniem wielkości liter?

Ten post edytował roobik 6.08.2007, 10:03:18
Go to the top of the page
+Quote Post
Kicok
post 6.08.2007, 10:31:17
Post #9





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Pole typu blob IMHO niespecjalnie się nadaje do operacji na tekstach, ale jak już musisz traktować te dane binarne jako tekst, to najpierw musisz wykonać rzutowanie:

  1. SELECT * FROM k WHERE CAST( w AS char ) = 'aa'


Ten post edytował Kicok 6.08.2007, 10:35:19


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
roobik
post 6.08.2007, 10:54:03
Post #10





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


...a jak to podłączyć to zapytania:
  1. <?php
  2. $qo = "SELECT * FROM k WHERE id='$id'";
  3. $ro = mysql_query($qo);
  4. $ro = mysql_fetch_array($ro);
  5. ?>

(po tym zapytaniu lecą $title = $ro['tyt']; itd...
Go to the top of the page
+Quote Post
Kicok
post 6.08.2007, 15:09:47
Post #11





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


  1. <?php
  2.  
  3. $qo = "SELECT * FROM k WHERE id='$id'";
  4. $ro = mysql_query( $qo );
  5. $ro = mysql_fetch_array( $ro );
  6.  
  7. if( strcasecmp( $ro['w'], 'jakis tekst' ) === 0 ) {
  8. echo 'Znaleziono';
  9. }
  10.  
  11. ?>


O to ci chodziło? Bo ja tu nie widzę żadnego miejsca, w którym możnaby sensownie użyć sprawdzania wartości kolumny `w` bez uwzględnienia wielkości liter...


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
roobik
post 6.08.2007, 15:44:44
Post #12





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


w całości prezentuje się to tak:
  1. <?php
  2. $id = substr($name, 1); 
  3.  
  4. $qo = "SELECT * FROM k WHERE id='$id'";
  5. $ro = mysql_query($qo);
  6. $ro = mysql_fetch_array($ro); 
  7.  
  8. if( strcasecmp( $ro['k'], ".$slowo." ) === 0 ) {
  9.  
  10. $title = $ro['tyt']; 
  11. $text = $ro['w']; 
  12. $data_wyd = $ro['data_w'];
  13.  
  14. $title = stripslashes($title);
  15. $text = stripslashes($text); 
  16. $text = strip_tags($text); 
  17. $text = substr($text, 0, 130); 
  18. $text = eregi_replace($word, '<span style="background-color: #000">'.$word.'</span>', $text); 
  19. $title = eregi_replace($word, '<span style="background-color: #000">'.$word.'</span>', $title); 
  20.  
  21.  
  22. }
  23.  
  24. }
  25. echo '<br><b>Znaleziono: </b>....itd...';
  26. ?>

ale to nie pomaga sad.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:54